Wordpress COD 选项禁用,直到输入城市
Posted
技术标签:
【中文标题】Wordpress COD 选项禁用,直到输入城市【英文标题】:Wordpress COD option disables until the city is entered 【发布时间】:2021-11-19 06:57:23 【问题描述】:我有一个 WordPress 网站,这里是链接http://figclothingsl.com/
在这种情况下,COD 选项被禁用,如下图所示
在我选择了城市后,它会显示 COD 选项,如下图所示
如何在不选择城市的情况下使其始终可见
【问题讨论】:
【参考方案1】:请按照以下步骤检查您的 Cod 设置:
转到:WooCommerce > 设置 > 付款。
使用启用下的切换选择货到付款。
选择设置。您将进入货到付款设置。
配置您的设置: 启用 COD – 启用以使用。禁用即可关闭。
标题 - 选择结帐时向客户显示的标题
描述 - 添加显示给客户的信息,如果他们选择货到付款 说明 - 说明如何通过货到付款方式付款
启用运输方式 - 选择运输方式和费率 将提供货到付款
接受虚拟订单 - 勾选框以允许虚拟产品货到付款
-
保存更改
请检查是否有任何其他通过插件或自定义代码添加的设置。如果是,则允许所有国家/地区的鳕鱼。
【讨论】:
它不起作用。我已经做到了。还是一样 您是否检查了其他选项? 是的,我已经检查了所有内容。没有任何作用。仍然只有当我选择了城市时才启用 COD,如果没有,它就被隐藏了【参考方案2】:你可以试试这个,它经过我的测试并按预期工作。
functions.php
add_filter( 'woocommerce_available_payment_gateways', 'show_hide_cod_payment_method', 20, 1);
function show_hide_cod_payment_method( $gateways )
if( is_admin() )
return $gateways;
foreach( $gateways as $gateway_id => $gateway )
if( $gateway_id == 'cod' && ! WC()->session->get( 'is_billing_city' ) )
unset( $gateways[$gateway_id] );
return $gateways;
// The Wordpress Ajax php receiver
add_action( 'wp_ajax_my_billing_city', 'get_ajax_my_billing_city' );
add_action( 'wp_ajax_nopriv_my_billing_city', 'get_ajax_my_billing_city' );
function get_ajax_my_billing_city()
if (isset($_POST['billing_city']) && $_POST['billing_city'])
WC()->session->set('is_billing_city', $_POST['billing_city']);
else
WC()->session->set('is_billing_city', '0');
die();
// The jQuery Ajax request
add_action( 'wp_footer', 'checkout_billing_city_fields_script' );
function checkout_billing_city_fields_script()
// Only checkout page
if( is_checkout() && ! is_wc_endpoint_url() ):
// Remove "is_billing_city" custom WC session on load
if( WC()->session->get('is_billing_city') )
WC()->session->__unset('is_billing_city');
wc_enqueue_js("
jQuery( function($)
var default_city = jQuery('#billing_city').val();
cityChanger(default_city);
);
jQuery(document).on('change blur','#billing_city',function()
var mycity = jQuery(this).val();
cityChanger(mycity);
);
function cityChanger(selected_city)
jQuery.ajax(
type: 'POST',
url: wc_checkout_params.ajax_url,
data:
'action': 'my_billing_city',
'billing_city': selected_city != '' ? 1 : 0,
,
success: function (result)
jQuery('body').trigger('update_checkout');
);
");
endif;
;
现在我们正在使用“change”,“blur”动作,因此如果您真的需要,您可以相应地更改动作“jQuery(document).on('change blur','#billing_city',function()”。 参考答案是:https://***.com/a/69157294/16560548
【讨论】:
它没有配对,不知道为什么 使用 Inspect 检查浏览器上的 js 错误,因为我正在测试它的工作是否完美。 另一件事检查城市输入字段ID,如果不同,则将其替换为“billing_city”。以上是关于Wordpress COD 选项禁用,直到输入城市的主要内容,如果未能解决你的问题,请参考以下文章
添加一个复选框作为禁用支付网关的 WooCommerce 管理产品选项