woocommerce_cancel_unpaid_orders фильтр не работает в прямом эфире - Woocommerce - PullRequest
0 голосов
/ 18 сентября 2018

Приведенный ниже код работает нормально на локальном хосте, но не работает на работающем сервере

Код используется, чтобы пометить все неоплаченные заказы как «Сбой», еслиплатеж не получен даже после 10 минут создания заказа

Код является модифицированной версией кода, взятого из Плагин Woocommerce (строки с 852 по 877)

// Unpaid orders marked as Failed if payment is not received even after 10 minutes of order creation

    function custom_wc_cancel_unpaid_orders() {
        $held_duration = strtotime( '-10 minutes');
        $data_store    = WC_Data_Store::load( 'order' );
        $unpaid_orders = $data_store->get_unpaid_orders( strtotime( '-10 minutes', current_time( 'timestamp' ) ) );
        if ( $unpaid_orders ) {
            foreach ( $unpaid_orders as $unpaid_order ) {
                $order = wc_get_order( $unpaid_order );
                if ( apply_filters( 'woocommerce_cancel_unpaid_order', 'checkout' === $order->get_created_via(), $order ) ) {
                    $order->update_status( 'failed', __( 'Unpaid order marked failed - time limit reached.', 'woocommerce' ) );
                }
            }
        }
        wp_clear_scheduled_hook( 'woocommerce_cancel_unpaid_orders' );
        wp_schedule_single_event( time() + ( absint( $held_duration ) * 60 ), 'woocommerce_cancel_unpaid_orders' );
    }
    add_action( 'woocommerce_cancel_unpaid_orders', 'custom_wc_cancel_unpaid_orders' );

Может кто-нибудь сказать мне, почему он работает на локальном хосте, но не на живом сервере?

1 Ответ

0 голосов
/ 17 октября 2018

Используйте этот плагин и используйте задание cron для функции: woocommerce_cancel_unpaid_orders_woo

<?php
/**
 * Plugin Name: WooCommerce Cron Proxy
 */

add_action( 'woocommerce_cancel_unpaid_orders_woo', function() {
do_action_ref_array( 'woocommerce_cancel_unpaid_orders', func_get_args() );
}, 10, 10 );

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...