Добавить процентную комиссию с фиксированной комиссией в Woocommerce - PullRequest
0 голосов
/ 16 октября 2018

В Woocommerce я хотел бы добавить 3% комиссии за обработку плюс 30 центов «фиксированной» платы на страницу оформления заказа.

Мне удалось добавить плату за обработку, используя код, указанный ниже:

add_action( 'woocommerce_cart_calculate_fees', 'woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
    global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $percentage = 0.03;
    $surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
    $woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );
}

Теперь мне просто нужно добавить фиксированную плату в размере 30 центов.Как мне этого добиться?

Я пытался добавить:

$fee = 0.30;

Но у меня это не сработало.

Ответы [ 2 ]

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

Ваш код немного устарел, попробуйте следующее, вместо этого добавьте к процентной ставке фиксированную плату:

add_action( 'woocommerce_cart_calculate_fees', 'woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $percentage = 0.03;
    $fixed_fee  = 0.3;

    $percentage_fee = ( $cart->cart_contents_total + $cart->shipping_total ) * $percentage;
    $surcharge  = $fixed_fee + $percentage_fee;

    $cart->add_fee( 'Processing Fee', $surcharge, true );
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).).Протестировано и работает.

При использовании этого хука устаревший $global $woocommerce; не нужен, так как перехваченная функция может использовать объектную переменную WC_Cart в качестве аргумента…

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

Если вам нужно, чтобы обе надбавки были добавлены таким образом, чтобы они отображались отдельно, вы можете:

$percentage = 0.03;
$fixed_fee = 0.30;

$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );
$woocommerce->cart->add_fee( 'Fixed fee', $fixed_fee, true, '' );

Если вам не нужно отображать их отдельно, и просто отметьте, что «плата за обработку»"включает 3% надбавки плюс фиксированные 30 центов:

$percentage = 0.03;
$fixed_fee = 0.30;

$surcharge = (( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage) + $fixed_fee);
$woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );

оба должны работать.Это будет зависеть от того, что вам нужно вниз по течению

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