我目前正在编写以下代码,似乎没有让我的数据库与wooccommerce交互,这是一个注册/注册表单,所以信息基本上只需要发布到数据库中,以便在用户需要使用它时进行记录?然而,我已经设法让它记录了所有内容,如密码/名字等,但与wooccommerce无关,如账单地址,这是我的代码,希望你能提供帮助!
<div id="content">
<div class="titlebox" ><center><?php the_title(); ?></center></div>
<div class="description">
<center>
<strong><h2>Create an Account</h2></strong>
</center>
</div>
<?php
$err = '';
$success = '';
global $wpdb, $PasswordHash, $current_user, $user_ID;
if(isset($_POST['task']) && $_POST['task'] == 'register' ) {
$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
$first_name = $wpdb->escape(trim($_POST['first_name']));
$last_name = $wpdb->escape(trim($_POST['last_name']));
$description = $wpdb->escape(trim($_POST['description']));
$email = $wpdb->escape(trim($_POST['email']));
$username = $wpdb->escape(trim($_POST['username']));
$url = $wpdb->escape(trim($_POST['url']));
$aim = $wpdb->escape(trim($_POST['aim']));
$yim = $wpdb->escape(trim($_POST['yim']));
$jabber = $wpdb->escape(trim($_POST['jabber']));
$googleplus = $wpdb->escape(trim($_POST['googleplus']));
$billing_first_name = $wpdb->escape(trim($_POST['billing_first_name']));
$billing_last_name = $wpdb->escape(trim($_POST['billing_last_name']));
$billing_company = $wpdb->escape(trim($_POST['billing_company']));
$billing_address_1 = $wpdb->escape(trim($_POST['billing_address_1']));
$billing_address_2 = $wpdb->escape(trim($_POST['billing_address_2']));
$billing_city = $wpdb->escape(trim($_POST['billing_city']));
$billing_postcode = $wpdb->escape(trim($_POST['billing_postcode']));
$billing_state = $wpdb->escape(trim($_POST['billing_state']));
$billing_country = $wpdb->escape(trim($_POST['billing_country']));
$billing_phone = $wpdb->escape(trim($_POST['billing_phone']));
$billing_email = $wpdb->escape(trim($_POST['billing_email']));
if( $email == "" || $pwd1 == "" || $pwd2 == "" || $username == "" || $first_name == "" || $last_name == "" || $description == "" ) {
$err = 'Please don''t leave the required fields.';
} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$err = 'Invalid email address.';
} else if(email_exists($email) ) {
$err = 'Email already exist.';
} else if($pwd1 <> $pwd2 ){
$err = 'Password do not match.';
} else {
$user_id = wp_insert_user( array (
'first_name' => apply_filters('pre_user_first_name', $first_name),
'last_name' => apply_filters('pre_user_last_name', $last_name),
'url' => apply_filters('pre_user_url', $url),
'aim' => apply_filters('pre_user_aim', $aim),
'yim' => apply_filters('pre_user_yim', $yim),
'jabber' => apply_filters('pre_user_jabber', $jabber),
'googleplus' => apply_filters('pre_user_googleplus', $googleplus),
'description' => apply_filters('pre_user_description', $description),
'user_pass' => apply_filters('pre_user_pass', $pwd1),
'user_login' => apply_filters('pre_user_login', $username),
'user_email' => apply_filters('pre_user_email', $email),
'role' => 'subscriber'
) );
if( is_wp_error($user_id) ) {
$err = 'Error on user creation.';
} else {
do_action('user_register', $user_id);
$success = 'You''re successfully register';
}
}
}
?>
<div id="message">
<?php
if(! empty($err) ) :
echo '<p class="error">'.$err.'</p>';
endif;
?>
<?php
if(! empty($success) ) :
echo '<p class="error">'.$success.'</p>';
endif;
?>
</div>
<form method="post">
<h3>Create Account.</h3>
<p><label>Last Name</label></p>
<p><input type="text" value="" name="last_name" id="last_name" /></p>
<p><label>First Name</label></p>
<p><input type="text" value="" name="first_name" id="first_name" /></p>
<p><label>Description</label></p>
<p><input type="text" value="" name="description" id="description" /></p>
<p><label>url</label></p>
<p><input type="text" value="" name="url" id="url" /></p>
<p><label>aim</label></p>
<p><input type="text" value="" name="aim" id="aim" /></p>
<p><label>yim</label></p>
<p><input type="text" value="" name="yim" id="yim" /></p>
<p><label>jabber</label></p>
<p><input type="text" value="" name="jabber" id="jabber" /></p>
<p><label>googleplus</label></p>
<p><input type="text" value="" name="googleplus" id="googleplus" /></p>
<p><label>Email</label></p>
<p><input type="text" value="" name="email" id="email" /></p>
<p><label>Username</label></p>
<p><input type="text" value="" name="username" id="username" /></p>
<p><label>Password</label></p>
<p><input type="password" value="" name="pwd1" id="pwd1" /></p>
<p><label>Password again</label></p>
<p><input type="password" value="" name="pwd2" id="pwd2" /></p>
<p><label>Billing First Name</label></p>
<p><input type="text" value="" name="billing_first_name" id="billing_first_name" /></p>
<p><label>Billing Second Name</label></p>
<p><input type="text" value="" name="billing_last_name" id="billing_last_name" /></p>
<p><label>Billing Company</label></p>
<p><input type="text" value="" name="billing_last_name" id="billing_last_name" /></p>
<p><label>Billing Address Line 1</label></p>
<p><input type="text" value="" name="billing_address_1" id="billing_address_1" /></p>
<p><label>Billing Address Line 2</label></p>
<p><input type="text" value="" name="billing_address_2" id="billing_address_2" /></p>
<p><label>Billing City</label></p>
<p><input type="text" value="" name="billing_city" id="billing_city" /></p>
<p><label>Billing Postcode</label></p>
<p><input type="text" value="" name="billing_postcode" id="billing_postcode" /></p>
<p><label>Billing State</label></p>
<p><input type="text" value="" name="billing_state" id="billing_state" /></p>
<p><label>Billing Country</label></p>
<p><input type="text" value="" name="billing_country" id="billing_country" /></p>
<p><label>Billing Phone</label></p>
<p><input type="text" value="" name="billing_phone" id="billing_phone" /></p>
<p><label>Billing Email</label></p>
<p><input type="text" value="" name="billing_email" id="billing_email" /></p>
<div class="alignleft"><p><?php if($sucess != "") { echo $sucess; } ?> <?php if($err != "") { echo $err; } ?></p></div>
<button type="submit" name="btnregister" class="button" >Submit</button>
<input type="hidden" name="task" value="register" />
</form>
我知道你在做什么。WP API运行正常,但你没有任何对WooCommerce API的调用,这就是为什么它没有更新WooCommCommerce方面的任何内容。以下是您想要的API:
http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html
编辑
因此,经过一点研究,我发现WooCommerce用户信息与正常使用数据一起存储在WordPress数据库的用户元表中。因此,要更新相关的WooCommerce信息,只需查看DB中的表,并找到要添加/更新的值的名称。
update_user_meta($userId, 'company', $companydata);
我不知道WooCommerce使用的所有元值,我附近也没有安装WordPress,我主要是在处理我过去使用WP时所知道的内容。试试这个,
在WordPress GUI中创建一个新的购物者帐户,并为该用户填写每个信息字段。然后转到您的数据库管理器,例如phpMyAdmin或任何其他允许您直接访问数据库的工具,并查看用户元表以查看您需要的信息。:/恐怕这已经是我能给你的最详细的了。
我发现数据库中的数据表是'fj2a27xri_usermeta',该表中标记为meta键的单元格中有以下内容:这是我使用的所有数据,但账单和运费仍然没有记录?
1- first_name
2 - last_name
3 - description
4 - email
5 - username
6 - url
7 - aim
8 - yim
9 - jabber
10 - googleplus
11 - billing_first_name
12 - billing_last_name
13 - billing_company
14 - billing_address_1
15 - billing_address_2
16 - billing_city
17 - billing_postcode
18 - billing_state
19 - billing_country
20 - billing_phone
21 - billing_email
1-10有效,11-21无效?