私のウェブサイトの製品は、その 2 つの配送プラグインのいずれかによって処理されます: Printful Integration for WooCommerceとPrintify for WooCommerce Shipping。各配送プラグインの商品が混在している場合。これらのプラグインは、アイテムが混在している場合(これは競合であり、問題です)、出荷パッケージをそれぞれ 2 つに分割します。
そこで、 Printful プラグインで扱う商品に配送クラス(ID は)を追加し、 @LoicTheAzec (乾杯) によってwoocommerce アンサー コードで特定の配送クラスの配送方法を非表示に調整して、配送のみを削除するようにしました。配送プラグイン間の競合により、ID 2 と 3 の特定の重複配送パッケージからのメソッド…</p>
'printful'
548
これが私の実際のコードです:
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_shipping_class', 10, 2 );
function hide_shipping_method_based_on_shipping_class( $rates, $package )
{
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// HERE define your shipping class to find
$class = 548; //CAMDEN HARBOR CHART MUG is in shipping class
// HERE define the shipping methods you want to hide
$method_key_ids = array('printify_shipping_s', 'printify_shipping_e');
// Checking in cart items
foreach( WC()->cart->get_cart() as $cart_item ){
// If we find the shipping class
if( $cart_item['data']->get_shipping_class_id() == $class ){
foreach( $method_key_ids as $method_key_id ){
unset($rates[$method_key_id]); // Remove the targeted methods
}
break; // Stop the loop
}
}
return $rates;
}
しかし、それは機能せず、2 つではなく 4 つの配送パッケージを受け取ります。
どんな助けでも大歓迎です。