Перед оформлением заказа проверьте содержимое корзины и минимальную сумму в Woocommerce - PullRequest
0 голосов
/ 05 августа 2020

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

Проблема, с которой я сталкиваюсь, заключается в том, что если кто-то идет прямо к кассе, он пропускает процесс проверки продукта и все еще может выполнить заказ.

Я перепробовал так много хуков для страницы корзины, но ничего не работает? Есть идеи?

TIA!

add_action( 'woocommerce_after_checkout_shipping_form', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
 
function wc_minimum_order_amount() {
    // Set this variable to specify a minimum order value
    $minimum = 500;

    if ( WC()->cart->total < $minimum ) {

        if( is_cart() ) {

            // Loop through cart items
                foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                    $product = $cart_item['data'];
                    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
                    $terms = get_the_terms( $product_id, 'product_cat' );
                    foreach ($terms as $term) {
                        $category_term_id = $term->term_id;
                    }
                    // your products categories
                    if ( in_array( $category_term_id, array(/*1,2,3,4*/) ) ) { 
                        $products_min = true;

                    // your product ID'S
                    } elseif ( in_array( $product_id, array(11744,11731) ) ) { 
                        $products_min = true;
                    }
                }


                if( ( is_cart() || is_checkout() ) && $products_min ) {


                      header('Location: /no-can-do/');
                } 
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...