预先填写woocommerce checkout中的结算字段

时间:2017-06-23 13:04:03

标签: wordpress woocommerce checkout

在我的项目中,我使用直接结帐插件进行woocommerce,以便在一个页面上购物和结帐。

客户希望订单流程像这样

  1. 我们在wordpress中有一个订单页面,用户输入他们的姓名,地址,电话,电子邮件,选择价格,然后重定向到直接结帐。
  2. 在结帐页面上,我们希望字段billing_name,billing_address等已经预先填写了订单页面中的数据。
  3. 所以问题是如何将这些数据传递给结帐?

    另一个如何在填写传递数据之前清除这些字段?

2 个答案:

答案 0 :(得分:2)

我刚刚在我正在建设的网站上遇到过同样的问题。我们在调查中收集电子邮件地址,如果用户继续结帐,我们希望预先填写电子邮件字段。当调查表格提交时,我将电子邮件地址存储在WooCommerce会话中:

$woocommerce->session->set('survey_email', $_POST['survey_email']);

然后,我正在挂钩woocommerce_checkout_fields过滤器(see docs)以填写表单字段。您无法直接设置字段的值,但您可以设置默认值,然后在用户登录时可以覆盖它。

function override_checkout_email_field( $fields ) {
    global $woocommerce;
    $survey_email = $woocommerce->session->get('survey_email');
    if(!is_null($survey_email)) {
      $fields['billing']['billing_email']['default'] = $survey_email;
    }
    return $fields;
}

add_filter( 'woocommerce_checkout_fields' , 'override_checkout_email_field' );

答案 1 :(得分:1)

此解决方案对我有帮助-https://www.bobz.co/pre-populate-woocommerce-checkout-fields/

<label for=""><input type="number" id="repeatNumber"></label>
<button id="setRepeats" type="button">Update repeats</button>
<div id="box">
  <div class="elements">1</div>
  <div class="elements">2</div>
  <div class="elements">3</div>
  <div class="elements">4</div>
  <div class="elements">5</div>
  <div class="elements">6</div>
  <div class="elements">7</div>
  <div class="elements">8</div>
  <div class="elements">9</div>
  <div class="elements">10</div>
  <div class="elements">11</div>
  <div class="elements">12</div>
  <div class="elements">13</div>
  <div class="elements">14</div>
  <div class="elements">15</div>
</div>
相关问题