В настоящее время у меня есть сайт WordPress с минимальной стоимостью заказа, установленной для моего магазина WooCommerce, настроенной в моем файле functions.php, и он отлично работает. Теперь я хочу установить один тег продукта в качестве исключения из этого правила и не устанавливать для него минимальную стоимость заказа... возможно ли это?
На самом деле я использую Установите минимальную сумму заказа в коде ответа WooCommerce.
Не уверены, является ли ответом переход на плагин, такой как «минимальная сумма заказа wc», или его можно добавить в существующий код?
Любые советы очень ценятся!
Чтобы сделать этот код неактивным для определенных тегов продуктов, используйте следующее:
add_action( 'woocommerce_check_cart_items', 'required_min_cart_subtotal_amount' );
function required_min_cart_subtotal_amount() {
$minimum_amount = 35; // HERE Set minimum cart total amount
$product_tags = array('Lewis'); // HERE set the product tags (term names, slugs or Ids)
$cart_subtotal = WC()->cart->subtotal; // Total (before taxes and shipping charges)
$tag_found = false;
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// Check for product tag
if ( has_term( $product_tags, 'product_tag', $cart_item['product_id'] ) ) {
$tag_found = true;
break;
}
}
// Add an error notice is cart total is less than the minimum required
if ( $cart_subtotal < $minimum_amount && ! $tag_found ) {
// Display an error message
wc_add_notice( '<strong>' . sprintf( __("A minimum total purchase amount of %s is required to checkout."), wc_price($minimum_amount) ) . '<strong>', 'error' );
}
}
Или, если вы хотите исключить определенные теги продуктов из промежуточного итога корзины, используйте вместо этого:
add_action( 'woocommerce_check_cart_items', 'required_min_cart_subtotal_amount' );
function required_min_cart_subtotal_amount() {
$minimum_amount = 35; // HERE Set minimum cart total amount
$product_tags = array('Disc'); // HERE set the product tags (term names, slugs or Ids)
$cart_subtotal = 0; // Total (before taxes and shipping charges)
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// Check for product tag
if ( ! has_term( $product_tags, 'product_tag', $cart_item['product_id'] ) ) {
$cart_subtotal += $cart_item['line_subtotal'] + $cart_item['line_subtotal_tax'];
}
}
// Add an error notice is cart total is less than the minimum required
if ( $cart_subtotal < $minimum_amount ) {
// Display an error message
wc_add_notice( '<strong>' . sprintf( __("A minimum total purchase amount of %s is required to checkout."), wc_price($minimum_amount) ) . '<strong>', 'error' );
}
}
Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.