Я получаю динамическую пользовательскую цену в переменной, которую я хочу передать подключенной функции в 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; } }