Итак, задача была следующая -ввести минимальную сумму в корзине для доставки "Flat rate", т.е. если человек не набрал до 40$ и выше и при этом выбрал доставку курьером - ему выводится сообщение и отключается возможность оформить заказ. Следующий код можно добавить в function.php от шаблона или свой кастомный плагин:
/** * Function to set a minimum/cap on the shipping rates. */ add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' ); add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' ); do_action( 'woocommerce_shipping_method_chosen', 'wc_minimum_order_amount' ); function wc_minimum_order_amount() { global $woocommerce; $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $minimum = 40; if ( WC()->cart->total < $minimum && $chosen_methods[0] == 'flat_rate:2' ) { if( is_cart() ) { wc_print_notice( // %s is the minimum order amount for deliveries with the <strong>Flat Rate</strong>. Your current order total amount is %s. sprintf( 'Deliveries require a minimum order of %s. Your current order total is %s.' , wc_price( $minimum ), wc_price( WC()->cart->total ) ), 'error' ); } else { wc_add_notice( sprintf( 'Deliveries require a minimum order of %s. Your current order total is %s.' , wc_price( $minimum ), wc_price( WC()->cart->total ) ), 'error' ); } } }
на всякий случай через var_dump() уточните что лежит у вас в переменной $chosen_methods[0]