php – WooCommerce:在结账时预先选择并限制到一个州和城市
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – WooCommerce:在结账时预先选择并限制到一个州和城市,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2605字,纯文字阅读大概需要4分钟。
内容图文
![php – WooCommerce:在结账时预先选择并限制到一个州和城市](/upload/InfoBanner/zyjiaocheng/820/f0a6a5daccdb492a9d3717ffdbf0810e.jpg)
我正在建立一家只卖给一个城市的商店.我试图找出如何将城市选项限制为预先填充的字段.
我已经限制了国家,并在我的functions.php中使用以下代码:
add_filter( 'default_checkout_country', 'change_default_checkout_country' );
add_filter( 'default_checkout_state', 'change_default_checkout_state' );
function change_default_checkout_country() {
return 'PK'; // country code
}
function change_default_checkout_state() {
return 'SD'; // state code
}
我使用以下方法预先选择了州:
add_filter( 'woocommerce_states', 'bbloomer_custom_woocommerce_states' );
function bbloomer_custom_woocommerce_states( $states ) {
$states['PK'] = array(
'SD' => 'Sindh',
);
return $states;
}
但是……现在来到这个城市,我迷失了.我尝试过使用$fields [‘billing’] [‘billing_city’]以及$fields [‘billing’] [‘billing_city’] [‘value’]无济于事.
我希望客户仅限于卡拉奇.我对WooCommerce过滤器不太熟悉,所以我需要帮助才能实现这一目标.
解决方法:
由于woocommerce 3,default_checkout_country和default_checkout_state过滤器挂钩现在已被弃用和替换.
同样在您的上一个功能中,如果您只想限制一个城市,则不应将您的城市包含在州数组中.相反,您应该只返回一个可能的值.
所以这将是你的代码:
// default checkout country
add_filter( 'default_checkout_billing_country', 'change_default_checkout_country' );
add_filter( 'default_checkout_shipping_country', 'change_default_checkout_country' );
function change_default_checkout_country() {
return 'PK'; // country code
}
// default checkout state
add_filter( 'default_checkout_billing_state', 'change_default_checkout_state' );
add_filter( 'default_checkout_shipping_state', 'change_default_checkout_state' );
function change_default_checkout_state() {
return 'SD'; // state code
}
// Setting one state only
add_filter( 'woocommerce_states', 'custom_woocommerce_state', 10, 1 );
function custom_woocommerce_state( $states ) {
// Returning a unique state
return array('PK' => array('SD' => 'Sindh'));
}
// Only one country at checkout
add_filter( 'woocommerce_checkout_fields', 'custom_checkout_fields', 10, 1 );
function custom_checkout_fields( $fields ) {
$fields['billing']['billing_city']['type'] = 'select';
$fields['billing']['billing_city']['options'] = array('Karachi' => 'Karachi');
$fields['shipping']['shipping_city']['type'] = 'select';
$fields['shipping']['shipping_city']['options'] = array('Karachi' => 'Karachi');
return $fields;
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.
此代码经过测试,适用于wooCommerce版本3
Once added the code above and saved, you will need in
WooCommerce > Settings > General
to set locations this way:
然后你会在结账时得到这样的东西:
两个下拉列表只有一个值……所以你得到了你所期望的.
内容总结
以上是互联网集市为您收集整理的php – WooCommerce:在结账时预先选择并限制到一个州和城市全部内容,希望文章能够帮你解决php – WooCommerce:在结账时预先选择并限制到一个州和城市所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。