איך להסיר סוגי משלוח לפי קטגוריות המוצר בעמוד לתשלום בווקומרס ?
המקטע קוד הנל יסיר את שיטת המשלוח "method1" כאשר מתקיים תנאי בו יש מוצרים בעגלה ששיכיים לקטגוית המוצרים : cellphones_and_pc בעלת השם : Cellphones And PC
/** * remove shipping methods in the checkout based on products in cart categories */ add_filter( 'woocommerce_package_rates', 'pablo_filter_shipping_methods', 10, 2 ); function pablo_filter_shipping_methods( $rates, $package ) { // Find method1 shipping method $method1_shipping_method_key = FALSE; foreach ( $rates as $rate_key => $rate ) { if ( is_object( $rate ) && method_exists( $rate, 'get_label' ) && $rate->get_label() === "Some" ) { $method1_shipping_method_key = $rate_key; } } // go through all products in the cart and check their categories if ( $method1_shipping_method_key !== FALSE ) { $cellphones_and_pc_found = FALSE; foreach ( $package['contents'] as $key => $item ) { $categories = get_the_terms( $item['product_id'], 'product_cat' ); if ( $categories && ! is_wp_error( $categories ) && is_array( $categories ) ) { foreach ( $categories as $category ) { if ( "Cellphones And PC" === $category->name ) { $cellphones_and_pc_found = TRUE; } } } } //mehod Cellphones And PC category products have been found, so we will disable the method1 shipping if ( $cellphones_and_pc_found === TRUE ) { unset( $rates[$method1_shipping_method_key] ); } } return $rates; }