2017-02-13 27 views
5

Я сделал пытался использовать код из этого ответа:
How to get minimum order amount for free shipping in woocommerceПолучение минимального количества заказа для метода «Бесплатная доставка» в кассе страницы

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

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

Благодаря

+0

Возможный дубликат [Как получить минимальную сумму заказа для бесплатной доставки в WooCommerce] (http://stackoverflow.com/questions/26582039/how-to-get-minimum-order-amount-for-free -подгрузка-в-woocommerce) –

+0

пожалуйста, прочитайте снова мое описание. Я так делаю (ваша ссылка), но возвращает результат NULL. Я делаю вот так: $ selected_methods = WC() -> session-> get ('selected_shipping_methods'); \t \t $ selected_shipping = $ selected_methods [0]; но как я могу получить min_amount, если выбранный метод - бесплатная доставка? – huykon225

+0

@LoicTheAztec вы имеете в виду, что я должен изменить вопрос или описание? все, что я хочу: когда я прихожу на страницу проверки и выбираю способ доставки - бесплатная доставка, я хочу получить ** минимальное количество ** этого метода. можешь мне помочь ? – huykon225

ответ

4

код этого ответа: How to get minimum order amount for free shipping in woocommerce
устарел с версией WooCommerce версии 2.6+, bu t было полезно для этого функционального ответа ...

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

enter image description here

Вот рабочий код протестирован (объяснения прокомментированы внутри):

// 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; 

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

+1

большое вам спасибо. Я только что нашел его и пошел сюда же результат. еще раз спасибо! – huykon225

+1

Благодарю за ваш энтузиазм. хороший день;)) – huykon225

+0

да сир. Я сделаю это в своем уме. спасибо – huykon225

0

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

get_option('woocommerce_free_shipping_1_settings'); 

А затем десериализации данные, выполнив,

maybe_unserialize(); 
+0

благодарите свой ответ. у моего db слишком много ** woocommerce_free_shipping_x_settings ** (с x: 9-> 19). Я хочу получить минимальное количество Свободный способ доставки на странице проверки. вы понимаете вопрос? пожалуйста, помогите мне – huykon225

0

Возможно, это поможет кому-то. Вы можете создать новый бесплатный объект доставки и получить от него 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; 
} 
+0

он не работает с woocommerce 2.6 или выше. пожалуйста, проверьте перед отправкой ответа? – huykon225

 Смежные вопросы

  • Нет связанных вопросов^_^