взорвать, вызывая недопустимый аргумент, чтобы показать на электронных продажах администратора - PullRequest
0 голосов
/ 08 апреля 2019

Каждый раз, когда мы совершаем распродажу без использования купона, я получаю сообщение об ошибке, в котором говорится, что implode () неверный аргумент functions.php

Эта проблема не вызывала до тех пор, поканедавно я переместил сайт с одного хоста на другой и обновил все плагины.

Функция переписки электронной почты, которая отображает текст

add_action( 'woocommerce_email_order_details', 'display_applied_coupons', 10, 4 );
function display_applied_coupons( $order, $sent_to_admin, $plain_text, $email ) {

    // Only for admins and when there at least 1 coupon in the order
    if ( ! $sent_to_admin && count($order->get_items('coupon') ) == 0 ) return;

    foreach( $order->get_items('coupon') as $coupon ){
        $coupon_codes[] = $coupon->get_code();
    }
    // For one coupon
    if( count($coupon_codes) == 1 ){
        $coupon_code = reset($coupon_codes);
        echo '<p>'.__( 'Coupon Used: ').$coupon_code.'<p>';
    } 
    // For multiple coupons
    else {
        $coupon_codes = implode( ', ', $coupon_codes);
        echo '<p>'.__( 'Coupons Used: ').$coupon_codes.'<p>';
    }
}

Если клиент не использует купон, он либо должен быть пустым, либо указывать «Купон не использован» - я не являюсьЯ уверен, почему область с несколькими купонами вызывает раздел, когда они не используют никаких купонов.

Вместо того, чтобы это работало, я продолжаю просто получать этот недопустимый аргумент для ошибки

1 Ответ

0 голосов
/ 08 апреля 2019

Попробуйте использовать array_push вместо $coupon_codes[]

$coupon_codes = array();
foreach( $order->get_items('coupon') as $coupon ){
      //$coupon_codes[] = $coupon->get_code();
      array_push($coupon_codes,$coupon->get_code());//changes
}

. Некоторые хосты не поддерживают [] при создании массива.

...