Получение минимальной суммы заказа для метода «Бесплатная доставка» на странице проверки

Я попытался использовать код из этого ответа:
Как получить минимальную сумму заказа для бесплатной доставки в woocommerce

Но он возвращает результат NULL и я не могу найти способ исправить этот код до сих пор.

Как я могу получить нужную сумму минимального заказа на странице проверки?

благодаря

Related of "Получение минимальной суммы заказа для метода «Бесплатная доставка» на странице проверки"

Код этого ответа: Как получить минимальный объем заказа для бесплатной доставки в woocommerce
устарел с WooCommerce версии 2.6+, но это было полезно для этого функционального ответа …

После некоторого поиска и некоторых попыток я нашел способ получить минимальную сумму заказа, установленную в методе «Бесплатная доставка», для определенной зоны (региона):

введите описание изображения здесь

Здесь приведен код проверки работоспособности (пояснения прокомментированы внутри):

 // Here you get (as you already know) the used shipping method reference $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); // Replacing inside the string ':' by '_' $option_value = str_replace(':', '_', $chosen_methods[0]); // We concatenate the string with additional sub-strings $option_value = 'woocommerce_'.$option_value.'_settings'; // Just a test => outputting the string to see what we get echo $option_value; echo '<br>'; // Now we can get the options values with that formatted string $free_shipping_settings = get_option( $option_value ); // Just for test => we output the (pre-formatted) array of values to check echo '<pre>'; print_r($free_shipping_settings); echo '</pre><br>'; // Here we get the value of the order min amount (Finally!) $order_min_amount = $free_shipping_settings['min_amount']; // We output the value (to check) echo 'Order min amount: '.$order_min_amount; 

Бинго! ты понял.

Вам нужно получить возможность,

 get_option( 'woocommerce_free_shipping_1_settings' ); 

И затем unserialize данные, делая,

 maybe_unserialize(); 

Может быть, это поможет кому-то. Вы можете создать новый бесплатный объект доставки и получить от него min_amount. Я думаю, что это проще, чем в ответе @LoicTheAttec.

 if ( class_exists( 'WC_Shipping_Free_Shipping' ) ) { $free_shipping = new WC_Shipping_Free_Shipping(); $min_amount = $free_shipping->min_amount; echo $min_amount; }