ווקומרס WooCommerce הוספת מס על סה"כ הרכישה כשורת מוצר בסל הקניות
הקוד הבא מציג דרך להסיף מס על סה"כ הרכישה כשורת מוצר בסל הקניות, ולא בסיכון הביניים
- יש לפתוח מוצר חדש ולקרוא משם המס לדוגמה "תוספת ליקוט"
- יש לסמן במוצר בנראות הקטלוג: חנות ותוצאות חיפוש "להסתיר", בכדי שלא יוצג בחנות
- יש להכניס בתחתית קובץ functions.php בתבנית הבת או בתבנית הראשית במידה ואין תבנית בת
- לשנות את מספר המוצר בקוד ב $product_id
add_action('woocommerce_checkout_update_order_review', 'add_fee_product'); add_action('woocommerce_checkout_create_order', 'add_fee_product'); add_filter('woocommerce_create_order', 'add_fee_product'); add_action('woocommerce_check_cart_items', 'add_fee_product'); function add_fee_product(){ $product_id = 18896; // מספר פסוט של המוצר if(check_not_empty_cart($product_id)){ define('FEE_PRODUCT', $product_id); if( !woo_in_cart($product_id) ){ WC()->cart->add_to_cart($product_id); }else{ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( $cart_item['product_id'] == $product_id ) { WC()->cart->remove_cart_item( $cart_item_key ); } } WC()->cart->add_to_cart($product_id); } global $woocommerce; $price_reg = 0; $price_total = 0; foreach($woocommerce->cart->get_cart() as $key => $val ) { $_product = $val['data']; if($product_id != $_product->id ) { $price_reg = $_product->get_regular_price() + $price_reg; $price_total = ($_product->get_regular_price() * $val['quantity']) + $price_total; } } $tax_reg = $price_reg * 0; $tax_total = $price_total * 0; foreach($woocommerce->cart->get_cart() as $key => $val ) { $_product = $val['data']; if($product_id == $_product->id ) { $_product->set_price( $tax_total ); $_product->set_regular_price( $tax_reg ); update_post_meta($_product->id, '_regular_price', (float)$tax_reg); update_post_meta($_product->id, '_price', (float)$tax_total); } } }else{ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( $cart_item['product_id'] == $product_id ) { WC()->cart->remove_cart_item( $cart_item_key ); } } } } function woo_in_cart($product_id) { global $woocommerce; foreach($woocommerce->cart->get_cart() as $key => $val ) { $_product = $val['data']; if($product_id == $_product->id ) { return true; } } return false; } function check_not_empty_cart($product_id) { global $woocommerce; foreach($woocommerce->cart->get_cart() as $key => $val ) { $_product = $val['data']; if($product_id != $_product->id ) { return true; } } return false; }
Share