Woocommerce Zone На основе минимальной суммы - PullRequest
0 голосов
/ 03 мая 2020

Как я могу установить эту ситуацию?

Как я могу добавить минимальный лимит заказа к единому тарифу продукта по зонам?

мы можем только бесплатную доставку продукции.

1 Ответ

1 голос
/ 03 мая 2020

Для этого вы можете использовать следующее, исходя из идентификатора зоны

function zone_based_minimum_amount() {
    // Only run it in Cart or Checkout pages
    if( is_cart() || ( is_checkout() && ! is_wc_endpoint_url() ) ) {
        // HERE below your targeted zone IDs
        $targeted_zones_ids = array( 1, 2 );

        $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); // The chosen shipping mehod
        $chosen_method = explode(':', reset($chosen_methods) );
        $shipping_zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $chosen_method[1] );
        $zone_name = $shipping_zone->get_zone_name(); // Get the zone name
        $zone_id = $shipping_zone->get_id(); // Get the zone ID

        // Total (before taxes and shipping charges)
        $total = WC()->cart->subtotal;

         // HERE Set minimum cart total amount
        $min_total = 100;

        // Add an error notice is cart total is less than the minimum required      
        if( $total <= $min_total && in_array( $zone_id, $targeted_zones_ids ) ) {
            // Display an error message
            wc_add_notice( '<strong>' . sprintf(
                __("A minimum total purchase amount of %s is required to checkout."),
                wc_price($min_total)
            ) . '<strong>', 'error' );

            // Removing the Proceed to checkout button from the Cart page
            remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
        }
    }
}
add_action( 'woocommerce_check_cart_items', 'zone_based_minimum_amount', 10, 0 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...