Корзина WooCommerce – Переменная динамической цены переходит в пользовательский ценовой крючок

Я получаю динамическую пользовательскую цену в переменной, которую я хочу передать подключенной функции в woocommerce_before_calculate_totals в корзине. Но он не работает.

Это мой код:

$add=200; //I want to pass this variable in add_action hook add_action( 'woocommerce_before_calculate_totals', 'add_custom_total_price'); function add_custom_total_price($cart_object) { global $woocommerce; $custom_price =$add; // This is my custom price foreach ( $cart_object->cart_contents as $key => $value ) { $value['data']->price = $custom_price; } } 

Как я могу это достичь?

благодаря

    Чтобы заставить его работать, вам просто нужно определить переменные $custom_price как глобальные в вашей функции, таким образом:

     $custom_price = 200; add_action( 'woocommerce_before_calculate_totals', 'add_custom_item_price', 10, 1 ); function add_custom_item_price( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; global $custom_price; foreach ( $cart_object->get_cart() as $item_values ) { $item_values['data']->price = $custom_price; } } 

    Этот код протестирован и работает (для версий 2.0 + и 2.6+ для Woocommerce) .

    Естественно, этот код распространяется на файл functions.php вашей активной дочерней темы или темы.

    Чтобы добавить цену в корзину woocommerce, прежде чем вычислять общее количество –

      add_action( 'woocommerce_before_calculate_totals', 'add_custom_total_price'); function add_custom_total_price($cart_object) { global $woocommerce,$add,$custom_price; $add=200;//Dynamic Price variable $custom_price =$add;//Dynamic Price variable pass to custom price foreach ( $cart_object->cart_contents as $key => $value ) { $value['data']->price = $custom_price; } }