woocommerce 스마트 쿠폰을 사용하여 "초대 코드"를 만들려고합니다. 이렇게하려면 특정 제품에 카트/체크 아웃시 쿠폰 코드가 필요합니다. 나는 이것을하는 방법을 보았지만, 나는 그들이 원하는 제품뿐만 아니라 모든 제품에 영향을 미쳤다.특정 제품 범주의 필수 쿠폰 코드에 대한 알림 표시
반환 된 변수를 다른 함수로 전달하려고 시도하지만이를 수행하는 방법을 알 수 없습니다.
//Check to see if user has product with a specific product category in cart
function check_product_in_cart() {
global $woocommerce;
//assigns a default negative value
// categories targeted 87, 18, 19
$product_in_cart = false;
// start of the loop that fetches the cart items
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
$terms = get_the_terms($_product->id, 'product_cat');
// second level loop search, in case some items have several categories
foreach ($terms as $term) {
$_categoryid = $term->term_id;
if (($_categoryid === 87) || ($_categoryid === 18) || ($_categoryid === 19)) {
//category is in cart!
$product_in_cart = true;
}
}
}
return $product_in_cart;
}
// Force Coupon codes for Woocommerce
add_action('woocommerce_check_cart_items', 'force_coupon_code');
function force_coupon_code($product_in_cart)
{
global $woocommerce;
if(is_cart() || is_checkout()){
$my_coupon = $woocommerce->cart->applied_coupons;
echo $woocommerce->cart->get_applied_coupons;
if(empty($my_coupon))
{
wc_add_notice('<strong>' . $btn['label'] . '</strong> ' . __('A coupon code is mandatory for this product.', 'woocommerce'), 'error');
}
}
}
첫 번째 부분은 반환해야합니다 제품 $의 product_in_cart 두 번째 부분은 쿠폰을 강제로 :
여기에 최신 버전입니다. 여기 내가 사용하는 코드의 소스가있다. Mandatory Coupon code 및 Checking products in cart based on category. 새로운 변수 arg에 변수를 두는 것이이 like so을 달성 할 수 있다는 것을 알았지 만 결코 작동하지는 않습니다.
아름다운! 매력을 발휘합니다. 나는 더 나은 코드를 제외하고는'if (empty ($ my_coupon) && $ has_cat) '라는 줄을 모두 묶어서 사용하고있다. 이론적으로, 문장에 더 많은 인수를 추가하고'if (empty ($ my_coupon) && $ has_cat) && $ color_blue && etc ... '와 같이 더 좁은 수식을 사용할 수 있습니까? – jimmyjames