Избегайте фатальной ошибки в событии update_checkout при расчете доставки в WooCommerce - PullRequest
0 голосов
/ 25 октября 2018

Я хочу рассчитать доставку при срабатывании update_checkout.Я использовал приведенный ниже код в своей функции плагина

function action_woocommerce_checkout_update_order_review($array, $int)
{
    WC()->cart->calculate_shipping();
    return;
}
add_action('woocommerce_checkout_update_order_review', 'action_woocommerce_checkout_update_order_review', 10, 2);

, когда я обновляю оформление заказа, я получаю ниже Фатальная ошибка при ответе AJAX

<br />
<b>Fatal error</b>:  Uncaught ArgumentCountError: Too few arguments to function action_woocommerce_checkout_update_order_review(), 1 passed in C:\xampp\htdocs\woo\wp-includes\class-wp-hook.php on line 286 and exactly 2 expected in C:\xampp\htdocs\woo\wp-content\plugins\wooinstant\inc\wooinstant-functions.php:82
Stack trace:
#0 C:\xampp\htdocs\woo\wp-includes\class-wp-hook.php(286): action_woocommerce_checkout_update_order_review('billing_first_n...')
#1 C:\xampp\htdocs\woo\wp-includes\class-wp-hook.php(310): WP_Hook-&gt;apply_filters('', Array)
#2 C:\xampp\htdocs\woo\wp-includes\plugin.php(453): WP_Hook-&gt;do_action(Array)
#3 C:\xampp\htdocs\woo\wp-content\plugins\woocommerce\includes\class-wc-ajax.php(281): do_action('woocommerce_che...', 'billing_first_n...')
#4 C:\xampp\htdocs\woo\wp-includes\class-wp-hook.php(286): WC_AJAX::update_order_review('')
#5 C:\xampp\htdocs\woo\wp-includes\class-wp-hook.php(310): WP_Hook-&gt;apply_filters('', Array)
#6 C:\xampp\htdocs\woo\wp-includes\plugin.php(453): WP_Hook-&gt;do_action(Array)
#7 C:\xampp\htd in <b>C:\xampp\htdocs\woo\wp-content\plugins\wooinstant\inc\wooinstant-functions.php</b> on line <b>82</b><br />

Как я могу рассчитать доставку на update_checkout?Любая помощь приветствуется.

1 Ответ

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

Хук woocommerce_checkout_update_order_review, является хуком действия с уникальным аргументом .Так как это ловушка действия, ничего возвращать не нужно, как это делает ловушка фильтра.

Попробуйте эту версию кода, проверенную без ошибок:

add_action( 'woocommerce_checkout_update_order_review', 'action_woocommerce_checkout_update_order_review', 10, 1 );
function action_woocommerce_checkout_update_order_review( $posted_data ) {
    WC()->cart->calculate_shipping();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...