In unserem Geschäft haben wir die UPS und USPS Versandarten.
Die Produkte, die wir verkaufen, haben alle unterschiedlichen Formen und Größen, daher müssen wir die APIs und keine Tabellenratenoptionen verwenden.WooCommerce Limit Versandmethode basierend auf Zustand
Ich möchte nur, dass die USPS-Raten angezeigt werden, wenn der Benutzer eine Postleitzahl von AK, HI, PR, GU, AS, VI oder UM eingibt. Ich habe bereits die Conditional Shipping and Payments-Methode ausprobiert, aber es scheint nicht zu funktionieren. Wenn ich nicht falsch liege, würde das sowieso nur für die Raten/Optionen funktionieren, die an der Kasse zurückgegeben werden und nicht für den Wagen, den ich brauche.
Ich habe viele verschiedene Seiten online durchsucht, wo diese Frage gestellt wurde, und habe versucht, die Datei zu bearbeiten, um die Antworten zu vergleichen, aber alle Antworten scheinen veraltet zu sein.
Die nächste Antwort, die ich finden kann, ist auf Option # 2 auf den Link unten, aber es funktioniert nicht, wenn ich es versuchen: http://support.wooforce.com/hc/en-us/articles/207515625-Hiding-disabling-a-shipping-service
Hier ist der Code, den ich von diesem Link angepasst haben und dass ich versuchte es zum Laufen zu bringen. Beachten Sie, dass ich die Methode für jeden Bundesstaat außer Alaska, Hawaii, Puerto Rico, Guam, Amerikanisch-Samoa, Jungferninseln und den kleineren Inseln ausschließen möchte.
Jede Hilfe ist willkommen!
add_filter('woocommerce_package_rates', 'wf_hide_undesired_service_for_required_states', 10, 2);
function wf_hide_undesired_service_for_required_states($rates, $package)
{
$exclude = array(
'wf_shipping_usps:D_PRIORITY_MAIL' => array(
'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'
)
);
if (is_array($exclude)) {
foreach($exclude as $shipping_method => $excluded_states) {
if (in_array(WC()->customer->shipping_state, $excluded_states)) {
unset($rates[$shipping_method]);
}
}
}
return $rates;
}