2016-08-05 3 views
1

Я подключаюсь кWoocommerce, чтобы установить минимальную сумму заказа для проверки возраста. В основном, заказчик должен иметь минимальный заказ в размере 1 доллара США. Это работает на странице телезрителя просмотра, но промежуточный итог переписывается checkout.js. Я вижу, что он изменяется после загрузки страницы.Изменения в корзине Woocommerce, переписанные checkout.js

Вот мой код в functions.php:

function hv_set_min_total() { 
    if(is_checkout()) { 
     global $woocommerce; 
     // set minimum cart total 
     $min_cart_total = 1; 

     // Total used before taxes and shipping 
     $total = $woocommerce->cart->subtotal; 

     // compare values 
     if($total < $min_cart_total) { 
      $diff = $min_cart_total - $total; 
      $woocommerce->cart->subtotal += $diff; 
      $woocommerce->cart->cart_contents_total += $diff; 
      $woocommerce->cart->subtotal_ex_tax += $diff; 
     } 
    } 
} 
add_action('woocommerce_calculate_totals', 'hv_set_min_total'); 

Я также попытался закреплять в различные другие крючки, что все изменения подытог, но все-таки получить переписывается файл checkout.js. Любые идеи о том, как я могу остановить это?

Другие вещи, которые я пробовал, но все равно удаляются:

  • Добавить Плата
  • Negative скидка

ответ

0

Как выясняется, по-видимому, метод is_checkout() возвращается ложные или не доступны, когда checkout.js пробегов, в результате чего в итоге возвращаясь назад к его оригиналу государство.

Для всех, кто пришел по этому вопросу: is_checkout() метод не доступен для checkout.js

0

Я не получаю, но давайте посмотрим, если это работает для вас, вы используете woocommerce_calculate_totals, но вы ничего не возвращаете.

Что бы я сделал это:

function totales ($totals){ 
    //echo "<pre>"; 
    //print_r($totals); 
    //echo "</pre>"; 

    //All your code ... 

    $totals->subtotal_ex_tax = ($totals->subtotal_ex_tax - 100000); 
    $totals->cart_contents_total = ($totals->cart_contents_total - 15000); 

    return $totals; 

} 

add_action('woocommerce_calculate_totals', 'totales', 10 , 1); 

Таким образом, вы можете изменить итог и общее, но не цена продукта.

Если вы whant знать о методе, который содержит этот крючок go here

+0

Спасибо, но вопрос, который предотвращал этот фрагмент от работы был фактически 'is_checkout)' метод (. – visevo