• Друзья, крон упорно овновляет акцию в три часа ночи. Как исправить это безобразие и поставить на полночь?
    Раньше думал, что глюк в часовых поясах. Менял в опциях WP и на сервере — 0 эмоций. Пришел к выводу, что это крон и вроде как прав. Смотрю — в кроне стоит ежедневная задача на woocommerce_scheduled_sales на 06:00, как подвинуть время?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Yui

    (@fierevere)

    永子

    https://wordpress.org/plugins/wp-crontrol/screenshots/
    ?

    возможно стоит сделать run now в нужное время, а дальше пойдет по интервалам

    Автор VictorSlate

    (@victorslate)

    Хорошая идея, попробую, но не уверен в успехе и вот почему:

    если я ставлю акцию до полуночи, то цена обновится только когда сработает крон, НО(!) если я выставлю цену скажем в 00:10, то цена тут же отобразится на сайте…

    Этот вопрос мучает 1,5 года, но когда он возник в первый раз я благополучно на него забил. За это время уже сменил и сервер и тему и кучу плагинов, да и сам вукоммерс уже неоднократно менялся.

    Автор VictorSlate

    (@victorslate)

    Ничего не понимаю.. Все перепробовал, а в списке крона эта задача так и висит на 6:00.

    Уже прошелся поиском по содержимому всех файлов на сервере, где есть woocommerce_scheduled_sales

    Нашлось три файла:
    ./wp-content/plugins/woocommerce/includes/wc-product-functions.php
    ./wp-content/plugins/woocommerce/includes/wc-deprecated-functions.php
    ./wp-content/plugins/woocommerce/includes/class-wc-install.php

    Отсылка к крону только в одном — class-wc-install.php

    /**
    	 * Create cron jobs (clear them first)
    	 */
    	private static function create_cron_jobs() {
    		wp_clear_scheduled_hook( 'woocommerce_scheduled_sales' );
    		wp_clear_scheduled_hook( 'woocommerce_cancel_unpaid_orders' );
    		wp_clear_scheduled_hook( 'woocommerce_cleanup_sessions' );
    		wp_clear_scheduled_hook( 'woocommerce_geoip_updater' );
    		wp_clear_scheduled_hook( 'woocommerce_tracker_send_event' );
    
    		$ve = get_option( 'gmt_offset' ) > 0 ? '+' : '-';
    
    		wp_schedule_event( strtotime( '00:00 tomorrow ' . $ve . get_option( 'gmt_offset' ) . ' HOURS' ), 'daily', 'woocommerce_scheduled_sales' );
    
    		$held_duration = get_option( 'woocommerce_hold_stock_minutes', '60' );
    
    		if ( $held_duration != '' ) {
    			wp_schedule_single_event( time() + ( absint( $held_duration ) * 60 ), 'woocommerce_cancel_unpaid_orders' );
    		}
    
    		wp_schedule_event( time(), 'twicedaily', 'woocommerce_cleanup_sessions' );
    		wp_schedule_event( strtotime( 'first tuesday of next month' ), 'monthly', 'woocommerce_geoip_updater' );
    		wp_schedule_event( time(), apply_filters( 'woocommerce_tracker_event_recurrence', 'daily' ), 'woocommerce_tracker_send_event' );
    	}

    Пожалуйста помогите разобраться с этой головоломкой!

Просмотр 3 ответов — с 1 по 3 (всего 3)

Тема «Woocommerce — срок начала/конца акции и часовой пояс. (cron?)» закрыта для новых ответов.