Я внедрил код, который будет взимать плату за обработку в размере 1,50 долл. США со всеми продуктами WooCommerce, если не используется код купона. Однако я хочу, чтобы плата за обработку была снята только для одного купона, а не для любого купона. Мысли? Ниже приведен мой текущий код, и единственным купоном, к которому не должен применяться сбор за обработку, является QFPZ8KSS (почтовый идентификатор для купона составляет 4432, если это требуется).

add_action( 'woocommerce_cart_calculate_fees','conditional_handling_fee' ); function conditional_handling_fee() { if ( is_admin() {amp}amp;{amp}amp; ! defined( 'DOING_AJAX' ) ) return; // Get the applied coupons   the count (in cart) $applied_coupons_arr = WC()-{amp}gt;cart-{amp}gt;get_applied_coupons(); $applied_coupons_count = count($applied_coupons_arr); $fee = 1.50; if( 0 == $applied_coupons_count ) WC()-{amp}gt;cart-{amp}gt;add_fee( ''.$applied_coupons_count, $fee, true, 'standard' ); } 

user50859

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Кодекс поведения

,

Вам просто нужно сравнить купон, использованный в вашем заказе, с купоном бесплатной доставки. Я думаю, что ниже должно работать, имейте в виду, что я не проверял это. Надеюсь, это поможет.

 {amp}lt;?php add_action( 'woocommerce_cart_calculate_fees','conditional_handling_fee' ); function conditional_handling_fee() { if ( is_admin() {amp}amp;{amp}amp; ! defined( 'DOING_AJAX' ) ) return; // Get the applied coupons   the count (in cart) $applied_coupons_arr = WC()-{amp}gt;cart-{amp}gt;get_applied_coupons(); $fee = 1.50; $applied_coupon_ids; // Coupons used in the order loop foreach( $applied_coupons_arr as $coupon ){ // Get Coupon ID $coupon_post_obj = get_page_by_title($coupon, OBJECT, 'shop_coupon'); $coupon_id = $coupon_post_obj-{amp}gt;ID; // Store in array array_push($applied_coupon_ids, $coupon_id); }; // Check if your free shipping coupon is used if(! in_array('COUPON_ID_HERE', $applied_coupon_ids)){ WC()-{amp}gt;cart-{amp}gt;add_fee( ''.$applied_coupons_count, $fee, true, 'standard' ); }; ?{amp}gt;