Как передать переменную php в функцию add_cart_item_data для изменения цены продукта в wordpress woocommerce

#php #wordpress #woocommerce #hook #divi

Вопрос:

Мне нужно добавить дополнительную цену в продукт woocommerce с опцией флажка, я получаю значение php для добавления $num = 5 из базы данных. Это работает только с числами, но не с переменной php вне области видимости. Я использую глобальный, но безрезультатно. Я ничего не мог добавить после этого . }

Вот мой код :

  $sth = $pdo->prepare("SELECT TextBox3 FROM wprd1 ORDER BY id DESC LIMIT 1");
 $sth->execute();
 $result = $sth->fetch(PDO::FETCH_ASSOC);
 $num = $result['TextBox3'];
 echo $num;
 global $num;       

}

add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
 
function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {    
    global $num;
     // get product id amp; price
    $product = wc_get_product( $product_id );
    $price = $product->get_price();
    // extra pack checkbox
    if( ! empty( $_POST['extra_pack'] ) ) {
       
        $cart_item_data['new_price'] = $price   15   $num;
    }
return $cart_item_data;
}
 

введите описание изображения здесь

Конечным результатом является текущая цена $price 15 , но $num она игнорируется.

Комментарии:

1.Каков контекст выполнения первого блока кода, выполнялся ли он вообще, когда вы выполняете запрос AJAX? И почему вы тогда не делаете этот запрос к add_cart_item_data базе данных?

2. Я делал это раньше, но без конфигурации подключения к базе данных, думая, что это создаст дубликат, поэтому я вставил его, и он работает! Ваш комментарий вновь мотивировал меня. Спасибо CBroe.