Сохранение данных в базе данных, WordPress WooCommerce

В настоящее время я кодирую следующее, и, похоже, мне не нужна моя база данных для взаимодействия с woocommerce, это форма регистрации / регистрации, поэтому информация в основном просто должна быть отправлена ​​в базу данных, поэтому она регистрируется, когда пользователю требуется использовать его? Однако мне удалось заставить его регистрировать все, например, пароль / имя и т. Д., Но не имеет ничего общего с woocommerce, например, адрес выставления счетов, вот мой код, который вы можете помочь!

<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, и поэтому он ничего не обновляет на стороне WooCommerce. Вот API для того, что вы хотите:

http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html

РЕДАКТИРОВАТЬ

Поэтому после небольшого исследования я обнаружил, что информация пользователя WooCommerce хранится вместе с обычными данными использования в метатете пользователя в базе данных WordPress. Поэтому, чтобы обновить соответствующую информацию WooCommerce, просто взгляните на эту таблицу в БД и найдите имена значений, которые вы хотите добавить / обновить.

 update_user_meta($userId, 'company', $companydata); 

Я не знаю всех метаданных, которые использует WooCommerce, и у меня нет установки WordPress поблизости, я в основном отработал то, что я знаю из моего использования WP в прошлом. Попробуй это,

Создайте новую учетную запись покупателя в графическом интерфейсе WordPress и заполните все поля информации для этого пользователя. Затем перейдите к своему менеджеру баз данных, например phpMyAdmin или что-нибудь еще, что позволит вам напрямую обращаться к вашей базе данных и посмотреть мета-таблицу пользователя, чтобы узнать, какая информация вам понадобится. : / Боюсь, это примерно столько, сколько я могу вам дать.

Я обнаружил, что таблица данных в базе данных «fj2a27xri_usermeta» и следующая в ячейках в этой таблице, которые обозначены мета-ключом: Вот все они я использовал, но все же биллинг и доставка не регистрируются?

 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 НЕ работают?