Я работал над приведенным ниже кодом, чтобы проверить корзину на наличие определенных идентификаторов продуктов, а также суммы. минимальная сумма, на которую пользователь перенаправляется на определенную страницу.
Проблема, с которой я сталкиваюсь, заключается в том, что если кто-то идет прямо к кассе, он пропускает процесс проверки продукта и все еще может выполнить заказ.
Я перепробовал так много хуков для страницы корзины, но ничего не работает? Есть идеи?
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/');
}
}
}
}