我目前正在编写以下代码,并且似乎没有使我的数据库与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>

===============>>#1 票数:0

我知道你在做什么。 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);

===============>>#2 票数:0

我不知道WooCommerce使用的所有元数据,并且附近没有安装WordPress,我主要是根据过去使用WP所做的工作。 尝试这个,

在WordPress GUI中创建一个新的购物者帐户,并为该用户填写信息的每个字段。 然后转到数据库管理器,例如phpMyAdmin或其他任何可以直接访问数据库的内容,并查看用户元表以查看所需的信息。 :/恐怕我会给你尽可能多的细节。

===============>>#3 票数:0

我发现数据库中的数据表为'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在工作?

  ask by user3348182 translate from so

未解决问题?本站智能推荐:

8回复

Wordpress(Woocommerce扩展) - 以编程方式创建新订单

我想以编程方式创建新订单。 工作流程很简单:提交简单表单后,将创建用户以及新订单。 我设法创建了一个新用户并返回了user_id,现在我需要一步一步地分配一个新订单。 我怎么能做到这一点?
1回复

未指定用于创建产品的产品数据[woocommerce_api_missing_product_data]

我已经下载了woocommerce php API的最新存储库。 我一直在关注woocommerce REST API文档来创建测试产品。 我已经从他们的文档中复制了该示例,但无法正常工作。 这是我的代码。 API文档: http ://woocommerce.github.io/w
1回复

在Woocommerce中获取属性

我需要帮助在woocommerce中添加自定义属性。 我正在通过添加代码形式“单一产品”(如产品标题和价格)一个接一个的代码来设计一个产品页面。 我也在那里获得产品图像,但是我需要获得属性产品,请帮助我。 我的HTML代码是 所以我需要根据它的属性。
1回复

通过WooCommerce中的代码更新订单项

我正在尝试创建一个界面,在其中可以编辑附加到lineitem的一些元数据。 我尝试在订单项本身上使用update_post_meta(),但是返回的是bool(false)。 如何手动更新订单项元数据? 谢谢!
1回复

在单个产品页面上的WooCommerce分页-但仅在父类别中

我想在WooCommerce中的每个产品页面上进行分页,以便用户可以轻松地在该类别的产品之间移动,而不必每次都回到主类别页面。 我知道可以使用标准的WordPress分页链接,例如… 如果我想浏览所有产品,但我只想浏览我所属类别内的产品,则此方法有效。有人知道我如何限制此范围,因此
1回复

如何在Wootheme的证书上添加自定义Woocommerce数据?

我已将自定义字段添加到Woocommerce的结帐页面。 我想从自定义字段中获取数据并将其放在Wootheme的证书插件中。 这是woo主题的Certificate插件的现有代码段。 我知道答案就在于替换$certificate_heading的值以更改其绘制的数据。 以下
1回复

如何在WooCommerce中列出每个可下载产品的每个文件名?

我正在使用WooCommerce插件。 在可下载产品中,如何显示文件名而不是产品名称? 现在,可下载产品在“我的帐户”页面中显示如下: 现在我需要将文件列表显示为filename。 例如:在“订单”页面中,它应该是这样的: 如何列出可下载产品列表中的每个文件名? 我正
1回复

Woocommerce-是否可以将可变产品添加到分组产品中?

我在特定组中列出了产品……在这种情况下,是床具。 床罩,枕头,软垫等。有些是可变产品(舒适的尺寸),有些是简单产品(枕头)。 我想创建一个名为XYZ Awesome Bedroom Set的产品组,并包括可变和简单产品类型。 不幸的是,Woothemes正式只支持将简单的产品添加到组中。.但是我不
2回复

WooCommerce产品自定义字段(woocommerce)

我创建了一个Textafield字段类型,当我输入一些文本并点击Publish时,它就会显示在前端。 但是,当我删除文本以清理前端并再次单击“发布”时,它将停留在“文本区域”字段和前端上。 有什么帮助吗? Function.php
1回复

国际订单的WooCommerce含税

我使用API​​在我的网站上设置价格并将其配置为接受包含价格。 我已经为我的国家/地区设置了增值税标准税率。 现在,我需要允许邻国从我的商店购买商品。 但是,我希望他们以全包价格购买,但没有增值税。 我尝试将国家/地区的标准税率设为0%,但这只是从价格中扣除了当地增值税。