我正在创建一个会员网站,并为每个会员计划完全创建静态页面(只有 3 个计划)。但是,我为每个计划添加了产品,当我点击“选择计划”按钮时,我会重定向到一些自定义表单,在其中询问用户我们将用于实现计划的信息范围(与sneakertub.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
and $_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 结账和订单页面中。
请让我知道这里出了什么问题。我知道我可能正在采用非常糟糕的方法,但我希望计划选择结帐流程与sneakertub.com 相同。如果有任何关于此的教程或正确的方法,请告诉我。我更喜欢在没有插件的情况下执行此操作,但我也准备使用插件。
感谢您的关注。