0
私はこの機能を持っており、私はそれをwoocommerce 3で動作させる必要があります。これは、2.6で完璧に動作します*woocommerce_before_calculate_totals in woocommerce v3。*
add_action('woocommerce_before_calculate_totals', 'add_custom_price');
function add_custom_price($cart_object) {
global $woocommerce;
$cart_item_meta['estimated_fare'] = WC()->session->get('estimated_fare');
$custom_price = $cart_item_meta['estimated_fare'] ; // This will be your custome price
$target_product_id = get_option('stern_taxi_fare_product_id_wc');
foreach ($cart_object->cart_contents as $key => $value) {
if ($value['product_id'] == $target_product_id) {
$value['data']->price = $custom_price;
}
}
}
私はこの試みた:。
add_action('woocommerce_before_calculate_totals', 'add_custom_price', 10 , 2);
function add_custom_price($cart_obj) {
global $woocommerce;
if (is_admin() && ! defined('DOING_AJAX'))
return;
$cart_item_meta['estimated_fare'] = WC()->session->get('estimated_fare');
$custom_price = $cart_item_meta['estimated_fare'] ; // This will be your custome price
$target_product_id = get_option('stern_taxi_fare_product_id_wc');
foreach ($cart_obj->get_cart as $key => $value) {
if ($value['product_id'] == 20) { // $target_product_id) {
$value['data']->set_price = $custom_price;
}
}
}
をするが、そのはまだ動作していないと私はカートで0.00価格を得ます。 これを修正する方法はありますか?あなたがset_price()
機能を使用する必要がwoocommerce最新バージョン(3.0.1)では、事前
あなたは私の第二の引用に見るように、私はそれを試してみましたが、機能はまだあなたがしようとした –
働いたが間違っていません、私は画面が短く追加されていることを確認してください。 – shojibur
@ニコス・ジアカマノリス、あなたの最初のコードを使用してください。そして、 '$ value ['data'] - > set_price($ custom_price);を使って、$ value ['data'] - > price = $ custom_price; – Reigel