function wds_sitemaps_dashboard_widget()
{
    $sitemap = get_option('wds_sitemap_options');
    $opts = get_option('wds_sitemap_dashboard');
    $engines = get_option('wds_engine_notification');
    $date = @$opts['time'] ? date(get_option('date_format'), $opts['time']) : false;
    $time = @$opts['time'] ? date(get_option('time_format'), $opts['time']) : false;
    $datetime = $date && $time ? sprintf(__('It was last updated on %s, at %s.', 'wds'), $date, $time) : __("Your sitemap hasn't been updated recently.", 'wds');
    $update_sitemap = __('Update sitemap now', 'wds');
    $update_engines = __('Force search engines notification', 'wds');
    $working = __('Updating...', 'wds');
    $sitemap_url = wds_get_sitemap_url();
    echo "<div style='width:45%;float:left'>";
    echo '<div>' . sprintf(__('Your sitemap contains <a href="%s" target="_blank"><b>%d</b> items</a>.', 'wds'), $sitemap_url, (int) @$opts['items']) . '</div>';
    echo "<br />{$datetime}";
    echo "<p><a href='#update_sitemap' id='wds_update_now'>{$update_sitemap}</a></p>";
    echo "</div>";
    echo "<div style='width:45%;float:right'>";
    if ($engines) {
        echo "<ul>";
        foreach ($engines as $key => $engine) {
            $service = ucfirst($key);
            $edate = @$engine['time'] ? date(get_option('date_format'), $engine['time']) : false;
            $etime = @$engine['time'] ? date(get_option('time_format'), $engine['time']) : false;
            $edatetime = $edate && $etime ? sprintf(__('Last notified on %s, at %s.', 'wds'), $date, $time) : __("Not notified", 'wds');
            echo "<li><b>{$service}:</b> {$edatetime}</li>";
        }
        echo "</ul>";
    } else {
        _e("<div>Search engines haven't been recently updated</div>", 'wds');
    }
    echo "<p><a href='#update_search_engines' id='wds_update_engines'>{$update_engines}</a></p>";
    echo "</div>";
    echo "<div style='clear:both'></div>";
    echo <<<EOSitemapsWidgetJs
<script type="text/javascript">
(function (\$) {
\$(function () {

\$("#wds_update_now").click(function () {
\tvar me = \$(this);
\tme.html("{$working}");
\t\$.post(ajaxurl, {"action": "wds_update_sitemap"}, function () {
\t\tme.html("{$update_sitemap}");
\t\twindow.location.reload();
\t});
\treturn false;
});
\$("#wds_update_engines").click(function () {
\tvar me = \$(this);
\tme.html("{$working}");
\t\$.post(ajaxurl, {"action": "wds_update_engines"}, function () {
\t\tme.html("{$update_engines}");
\t\twindow.location.reload();
\t});
\treturn false;
});

});
})(jQuery);
</script>
EOSitemapsWidgetJs;
}
 public static function notify_engines($forced = false)
 {
     if (wds_is_switch_active('WDS_SITEMAP_SKIP_SE_NOTIFICATION')) {
         return false;
     }
     global $wds_options;
     if (!@$wds_options['sitemapurl']) {
         return false;
     }
     $result = array();
     $now = time();
     if ($forced || @$wds_options['ping-google']) {
         do_action('wds_before_search_engine_update', 'google');
         $resp = wp_remote_get('http://www.google.com/webmasters/tools/ping?sitemap=' . esc_url(wds_get_sitemap_url()));
         $result['google'] = array('response' => $resp, 'time' => $now);
         if (is_wp_error($resp)) {
             do_action('wds_after_search_engine_update', 'google', false, $resp);
         } else {
             do_action('wds_after_search_engine_update', 'google', (bool) (@$resp['response']['code'] == '200'), $resp);
         }
     }
     /*
     // Yahoo SiteExporer is dead.
     if ($forced || @$wds_options['ping-yahoo']) {
     	do_action('wds_before_search_engine_update', 'yahoo');
     	$resp = wp_remote_get('http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=' . esc_url($wds_options['sitemapurl']));
     	$result['yahoo'] = array(
     		'response' => $resp,
     		'time' => $now,
     	);
     	if (is_wp_error($resp)) {
     		do_action('wds_after_search_engine_update', 'yahoo', false, $resp);
     	} else {
     		do_action('wds_after_search_engine_update', 'yahoo', (bool)(@$resp['response']['code'] == '200'), $resp);
     	}
     }
     */
     if ($forced || @$wds_options['ping-bing']) {
         do_action('wds_before_search_engine_update', 'bing');
         $resp = wp_remote_get('http://www.bing.com/webmaster/ping.aspx?sitemap=' . esc_url(wds_get_sitemap_url()));
         $result['bing'] = array('response' => $resp, 'time' => $now);
         if (is_wp_error($resp)) {
             do_action('wds_after_search_engine_update', 'bing', false, $resp);
         } else {
             do_action('wds_after_search_engine_update', 'bing', (bool) (@$resp['response']['code'] == '200'), $resp);
         }
     }
     // Ask.com doesn't accept sitemap pings on this address anymore
     /*
     if ($forced || @$wds_options['ping-ask']) {
     	do_action('wds_before_search_engine_update', 'ask');
     	$resp = wp_remote_get('http://submissions.ask.com/ping?sitemap=' . esc_url($wds_options['sitemapurl']));
     	$result['ask'] = array(
     		'response' => $resp,
     		'time' => $now,
     	);
     	if (is_wp_error($resp)) {
     		do_action('wds_after_search_engine_update', 'ask', false, $resp);
     	} else {
     		do_action('wds_after_search_engine_update', 'ask', (bool)(@$resp['response']['code'] == '200'), $resp);
     	}
     }
     */
     update_option('wds_engine_notification', $result);
 }