下 WooCommerce 订单后,将一些数据添加到自定义数据库 table
Add some data to custom database table once WooCommerce order is placed
伙计们,
我需要从结帐页面表单中捕获数据并保存在自定义 table.
中
1° 我创建了一个自定义 table:wp_personalinfo
下面2°是我在里面使用的脚本functions.php
/*
* Submit button name - 'woocommerce_checkout_place_order'
*/
if (!empty($_POST['woocommerce_checkout_place_order'])) {
/*
* Form Fields
*/
if (!empty($_POST['billing_first_name']) and
!empty($_POST['billing_last_name']) and
!empty($_POST['billing_phone']) and
!empty($_POST['billing_recommend']) and
!empty($_POST['billing_email'])) {
// DB Class Connection
global $wpdb;
// Sanitize the fields - form checkout.php
$billing_first_name = sanitize_text_field($_POST['billing_first_name']);
$billing_last_name = sanitize_text_field($_POST['billing_last_name']);
$billing_phone = sanitize_text_field($_POST['billing_phone']);
$billing_recommend = sanitize_text_field($_POST['billing_recommend']);
$billing_email = sanitize_text_field($_POST['billing_email']);
// Prefix db
$tablepsl = $wpdb->prefix.'personalinfo';
$datapsl = array(
'TB_NAME' => $billing_first_name,
'TB_LAST_NAME' => $billing_last_name,
'TB_PHONE' => $billing_phone,
'TB_RECOMENDATION' => $billing_recommend,
'TB_EMAIL' => $billing_email
);
$wpdb->insert($tablepsl, $datapsl);
} else {
echo 'All fields are mandatory';
}
}
没有数据保存在 table wp_personalinfo.
请问我做错了什么?
你试过了吗var_dump($_POST)
可以挂钩woocommerce_checkout_place_order
不工作
试戴woocommerce_checkout_process
嗯,今天是 2020 年 10 月 21 日 02:43 下午,我使用当前的 woocommerce 版本是 4.6.0
这对我有用。:
function porto_woocommerce_checkout_create_order( $order, $data ) {
$order = $order->save();
$billing_first_name = sanitize_text_field($data['billing_first_name']);
$billing_last_name = sanitize_text_field($data['billing_last_name']);
$billing_recommend = sanitize_text_field($data['billing_recommend']);
$billing_phone = sanitize_text_field($data['billing_phone']);
$billing_email = sanitize_text_field($data['billing_email']);
$payment_method = sanitize_text_field($data['payment_method']);
//$order_number = sanitize_text_field($data['order_number']);
// Prefix db
global $wpdb;
$tablepsl = $wpdb->prefix . 'personalinfo';
$data = array(
'tb_name' => $billing_first_name,
'tb_lastname' => $billing_last_name,
'tb_recomendation' => $billing_recommend,
'tb_phone' => $billing_phone,
'tb_email' => $billing_email,
'tb_numorder_id' => $order
); $wpdb->insert($tablepsl, $data);
}
add_action( 'woocommerce_checkout_create_order', 'porto_woocommerce_checkout_create_order', 10, 2 );
伙计们,
我需要从结帐页面表单中捕获数据并保存在自定义 table.
1° 我创建了一个自定义 table:wp_personalinfo
下面2°是我在里面使用的脚本functions.php
/*
* Submit button name - 'woocommerce_checkout_place_order'
*/
if (!empty($_POST['woocommerce_checkout_place_order'])) {
/*
* Form Fields
*/
if (!empty($_POST['billing_first_name']) and
!empty($_POST['billing_last_name']) and
!empty($_POST['billing_phone']) and
!empty($_POST['billing_recommend']) and
!empty($_POST['billing_email'])) {
// DB Class Connection
global $wpdb;
// Sanitize the fields - form checkout.php
$billing_first_name = sanitize_text_field($_POST['billing_first_name']);
$billing_last_name = sanitize_text_field($_POST['billing_last_name']);
$billing_phone = sanitize_text_field($_POST['billing_phone']);
$billing_recommend = sanitize_text_field($_POST['billing_recommend']);
$billing_email = sanitize_text_field($_POST['billing_email']);
// Prefix db
$tablepsl = $wpdb->prefix.'personalinfo';
$datapsl = array(
'TB_NAME' => $billing_first_name,
'TB_LAST_NAME' => $billing_last_name,
'TB_PHONE' => $billing_phone,
'TB_RECOMENDATION' => $billing_recommend,
'TB_EMAIL' => $billing_email
);
$wpdb->insert($tablepsl, $datapsl);
} else {
echo 'All fields are mandatory';
}
}
没有数据保存在 table wp_personalinfo.
请问我做错了什么?
你试过了吗var_dump($_POST)
可以挂钩woocommerce_checkout_place_order
不工作
试戴woocommerce_checkout_process
嗯,今天是 2020 年 10 月 21 日 02:43 下午,我使用当前的 woocommerce 版本是 4.6.0
这对我有用。:
function porto_woocommerce_checkout_create_order( $order, $data ) {
$order = $order->save();
$billing_first_name = sanitize_text_field($data['billing_first_name']);
$billing_last_name = sanitize_text_field($data['billing_last_name']);
$billing_recommend = sanitize_text_field($data['billing_recommend']);
$billing_phone = sanitize_text_field($data['billing_phone']);
$billing_email = sanitize_text_field($data['billing_email']);
$payment_method = sanitize_text_field($data['payment_method']);
//$order_number = sanitize_text_field($data['order_number']);
// Prefix db
global $wpdb;
$tablepsl = $wpdb->prefix . 'personalinfo';
$data = array(
'tb_name' => $billing_first_name,
'tb_lastname' => $billing_last_name,
'tb_recomendation' => $billing_recommend,
'tb_phone' => $billing_phone,
'tb_email' => $billing_email,
'tb_numorder_id' => $order
); $wpdb->insert($tablepsl, $data);
}
add_action( 'woocommerce_checkout_create_order', 'porto_woocommerce_checkout_create_order', 10, 2 );