Удалите условно кнопку «Перейти к оформлению заказа» из мини-карты в Woocommerce - PullRequest
0 голосов
/ 08 октября 2018

В woocommerce я сейчас пытаюсь добавить функцию в файл functions.php моей темы, если выполняются два условия.Затем, используя elseif(), разверните функцию, если выполняется только одно условие.

Код выглядит следующим образом:

add_action( 'woocommerce_widget_shopping_cart_before_buttons' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    $minimum = 150;
    $minimum2 = 100;

    if ( is_page([232]) && WC()->cart->subtotal < $minimum2 ) {
        if( 'woocommerce_widget_shopping_cart' ) {
            wc_print_notice(
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum2 )
                ), 'error' 
            );
            remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        } 
        else {
            wc_add_notice( 
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum2 )
                ), 'error' 
            );
        }

    }
    elseif ( WC()->cart->subtotal < $minimum ) {
        if( 'woocommerce_widget_shopping_cart' ) {
            wc_print_notice(
                sprintf( 'Your current order total does not meet the %s minimum', 
                    wc_price( $minimum )
                ), 'error' 
            );
            remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        } 
        else {
            wc_add_notice( 
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum )
                ), 'error' 
            );
        }
    }
}

Я пытаюсь скрыть кнопку извлечения длявиджет woocommerce, если минимальная сумма заказа не достигнута.Однако разные страницы имеют разные минимумы.

Я пытаюсь скрыть кнопку оформления заказа, если корзина не равна 150 долларам.Но для одной страницы я хочу, чтобы в корзине было минимум 100 долларов.

1 Ответ

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

Обратите внимание, что используемый вами хук предназначен только для виджета миникарты, поэтому вам не нужно проверять это в операторе IF.

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

add_action( 'woocommerce_widget_shopping_cart_before_buttons' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    $min_amount = is_page([232]) ? 100 : 150;

    if( WC()->cart->subtotal < $min_amount ) {
        remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        wc_add_notice( 
            sprintf( 'Your current order total does not meet the %s minimum' , 
                wc_price( $min_amount )
            ), 'error' 
        );
    } 
}

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

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