Изменить только промежуточную сумму корзины - PullRequest
0 голосов
/ 17 января 2019

ломая голову в течение нескольких дней, наконец решил посмотреть, есть ли хорошая душа с некоторой волей, чтобы помочь:

Я использую плагин для перезаписи простой цены продукта на основе формулы, которая работает на основе содержимого полей ввода формы (например, измерений). Поскольку цена рассчитывается по формуле, переключатель валют, который я также пытаюсь использовать, просто выводит символ валюты рядом с ним, по незатронутой рассчитанной цене переключения валют, поэтому я использую API плагинов для преобразования цены по формуле только в functions.php для ассортимента продукции, цена которой рассчитывается таким образом:

if (is_product_category(something)):
$price = price / x /** doing currency conversion manually;
endif;
return $price;

Это делает то, что должно, однако плагин переключения валют не влияет на цену, рассчитанную по формуле в самом списке товаров или в таблице товаров в корзине, но выполняет преобразование на промежуточной сумме, поэтому я заканчиваю влияет только на промежуточный итог по продуктовой линейке (рассчитывается с помощью переключателя валют, а затем делится на формулу цены). Мне понадобится только один из них, чтобы повлиять на промежуточный итог продукта, но не оба. Есть ли шанс, что есть способ повлиять только на подсчет промежуточных итогов в корзине (промежуточный итог, как в линейке продуктов (цена продукта * кол-во = промежуточный итог линейки продуктов), а не на один ниже с налогами и доставкой?

Я подошел ближе:

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 
1000, 1);
function add_custom_price( $cart_obj ) {

// This is necessary for WC 3.0+
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

// Loop through cart items
foreach ( $cart_obj->get_cart() as $cart_item ) {
    $cart_item['data']->set_price( XX );
}
}

Но для того, чтобы он работал как задумано, по крайней мере, я думаю, я должен иметь возможность заменить «ХХ» ценой продукта в рамках этой функции. Так что на самом деле я должен быть в состоянии определить цену продукта в корзине, а затем преобразовать эту обнаруженную цену, чтобы компенсировать покрытие, сделанное переключателем валют только в промежуточной сумме продуктовой линейки. Это, или, может быть, сделать математику на ХХ месте, так как текущий промежуточный итог делится переключателем валют, поэтому, если бы я мог умножить его обратно, я думаю, что это будет то же самое.

Таким образом, я мог бы разделить цены, рассчитанные по формуле, как описано выше ($ цена = $ цена / х), и все они соответствовали бы ...

Надеюсь, мне удалось хотя бы немного объяснить этот беспорядок. Я предполагаю, что это не лучший способ справиться с этим, но у меня нет других идей о том, как использовать оба, использование плагина для расчета цены на входные поля является обязательным для меня, как и переключение валют, и Я не могу заставить их обоих работать так, как они должны на этом типе продукта ...

Любой вклад очень приветствуется, и заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...