在我的项目中,我使用直接结帐插件进行woocommerce,以便在一个页面上购物和结帐。
客户希望订单流程像这样
所以问题是如何将这些数据传递给结帐?
另一个如何在填写传递数据之前清除这些字段?
答案 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>