2

私のウェブサイトの製品は、その 2 つの配送プラグインのいずれかによって処理されます: Printful Integration for WooCommercePrintify 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 つの配送パッケージを受け取ります。

ここに画像の説明を入力

どんな助けでも大歓迎です。

4

1 に答える 1