Я создаю сайт членства и полностью создал статические страницы для каждого плана членства (имею только 3 плана). Тем не менее, я добавил продукты для каждого плана, и когда я нажимаю кнопку «ВЫБЕРИТЕ ПЛАН», я перенаправляюсь на какую-то пользовательскую форму, где я запрашиваю у пользователей диапазон информации, которую мы собираемся использовать для выполнения плана (так же, как и на сайте Nikertub.com).
Я написал код на странице PHP, который будет обрабатывать действие SUBMIT формы. Этот файл PHP, infopage.php
, будет обрабатывать данные POST, которые я отправил с помощью вызова POST, и сохранять все эти данные в сеансе WC.
$customer_name = $_POST["customer_name"];
$customer_email = $_POST["customer_email"];
$customer_sex = $_POST["customer_sex"];
$customer_age = $_POST["customer_age"];
$product_id = $_POST["product_id"];
global $wp_session;
$data = array(
'customer_name' => $customer_name,
'customer_email' => $customer_email,
'customer_sex' => $customer_sex,
'customer_age' => $customer_age);
$wp_session['custom_SESSION_child']=$data;
WC()->session->set('custom_data_child', $data);
//Add product to WooCommerce cart.
WC()->cart->add_to_cart( $product_id )
Однако я не думаю, что приведенный выше код работает. Поскольку я не нахожу ценности в сеансе ни с одной из вышеперечисленных техник. Я использовал wp_session
, WC()->session
и $_SESSION
, но ни один подход не работает.
Я пытаюсь получить доступ к этим значениям в functions.php
таким образом,
add_action( 'woocommerce_before_calculate_totals', 'twf_additional_price', 1, 3 );
function twf_additional_price( $cart_object ) {
global $wpdb;
global $wp_session;
$session_data_2 = $wp_session['custom_SESSION_child'];
$session_data = WC()->session->get('custom_data_child');
var_dump($session_data);
var_dump($session_data2);
foreach ( $cart_object->cart_contents as $key => $value ) {
$extra_charge = 0;
if(isset($value['twf_user_custom_datas'])){
$extra_charge = 100;
}
$value['data']->set_price($value['data']->price + $extra_charge);
}
}
Пока игнорируйте цикл for
. Главное это
var_dump($session_data);
var_dump($session_data2);
оба дампа только NULL
.
Моя основная цель — добавить все вышеперечисленные поля на страницы оформления заказа и оформления заказа Woocommerce.
Пожалуйста, дайте мне знать, что здесь не так. Я знаю, что, возможно, я работаю над очень плохим подходом, но я хочу, чтобы процесс оформления заказа при выборе плана был таким же, как на сайте Nikertub.com. Пожалуйста, дайте мне знать, если есть какой-либо учебник по этому или правильный способ сделать это. Я предпочитаю делать это без плагинов, но я также готов использовать плагины.
Я ценю ваше внимание.