【问题标题】:Woocommerce copy shipping address to billing addressWoocommerce 将送货地址复制到帐单地址
【发布时间】:2018-04-14 19:53:30
【问题描述】:
我有一家 Woocommerce 花店。由于人们倾向于向其他人发送鲜花,我通过将 form-checkout.php 复制到我的子主题文件夹并将运输部分移到顶部来更改了账单和运输字段的顺序。但是,我还想包含一个按钮/复选框,使用户能够将运输信息复制到帐单字段。 Woocommerce 提供与此选项相反的选项(将帐单信息复制到运输),但我需要此选项的反向版本。任何帮助将不胜感激。
【问题讨论】:
标签:
php
wordpress
woocommerce
shipping
billing
【解决方案1】:
您可以为此使用 jQuery。这是您可以使用的部分代码
$("#copy_to_billing").on("click", function(){
if (this.checked) {
$("[name='first_name']").val($("[name='shipping_first_name']").val());
$("[name='last_name']").val($("[name='shipping_last_name']").val());
$("[name='billing_address_1']").val($("[name='shipping_address_1']").val());
$("[name='billing_address_2']").val($("[name='shipping_address_2']").val());
$("[name='billing_city']").val($("[name='shipping_city']").val());
$("[name='billing_state']").val($("[name='shipping_state']").val());
$("[name='billing_zip']").val($("[name='shipping_zip']").val());
$("[name='billing_country']").val($("[name='shipping_country']").val());
}
});
那么你只需要添加一个按钮来触发这样的代码:
<button id="copy_to_billing">Copy shipping details</button>
【解决方案2】:
正如上面回答的那样,我做了一些更改,这些代码对我来说很好用,就像
使用复选框而不是按钮,我将帐单地址字段值对应到送货地址字段。
//Paste this code in your theme js file
jQuery(document).on('change', '#copy_to_billing', function() {
if(this.checked) {
jQuery("[name='shipping_first_name']").val(jQuery("[name='billing_first_name']").val());
jQuery("[name='shipping_last_name']").val(jQuery("[name='billing_last_name']").val());
jQuery("[name='shipping_address_1']").val(jQuery("[name='billing_address_1']").val());
jQuery("[name='shipping_address_2']").val(jQuery("[name='billing_address_2']").val());
jQuery("[name='shipping_city']").val(jQuery("[name='billing_city']").val());
jQuery("[name='shipping_state']").val(jQuery("[name='billing_state']").val());
jQuery("[name='shipping_postcode']").val(jQuery("[name='billing_postcode']").val());
jQuery("[name='shipping_country']").val(jQuery("[name='billing_country']").val());
}
});
转到 your-theme/woocommerce/checkout/form-shipping.php(如果文件不存在,则从 woocommerce 复制到主题文件夹下的同一路径中)。
并使用具有相同 id 'copy_to_billing' 的复选框字段
<input id="copy_to_billing" type ="checkbox" name="copy_to_billing" value ="1" class="copy_billing woocommerce-form__input woocommerce-form__input-checkbox input-checkbox"><span><?php esc_html_e( 'Shpping address is same as billing', 'woocommerce' ); ?></span>