I am currently coding the following, and don’t seem to get my database to interact with woocommerce, this is a sign up/register form, so the information basically just needs to be posted to the database so its logged for when the user needs to use it? I have however managed to get it to logged everything such as password/first name etc, but nothing to do with woocommerce such as billing address, here is my code hope you can help!
<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>
I see what you’re trying to do. The WP API is functioning correctly, but you don’t have any calls to the WooCommerce API and that’s why its not updating anything on the WooCommerce side of things. Here’s the API for what you’re wanting:
http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html
EDIT
So after a bit of research, I discovered that WooCommerce user information is stored along with normal use data in the user meta table in the WordPress database. So to update the relevant WooCommerce information, just take a look into that table in the DB and find the names of the values you want to add/update.
I don’t know all the meta values that WooCommerce uses and I dont have a WordPress install nearby, I’m mainly working off what I know from my WP use in the past. Try this,
Create a new shopper account in the WordPress GUI and fill out every field of information for that user. Then go to your database manager, such as phpMyAdmin or anything else that let’s you access your database directly and look at the user meta table to see what information you’ll need. :/ I’m afraid that’s about as much detail as I can give you.
I have found that the data table in the database is ‘fj2a27xri_usermeta’ and the following in the cells in that table which are labelled meta key: Here is all of them i was using, yet still the billing and shipping don’t log?
1-10 are working and 11-21 are NOT working?