从结帐中删除国家/地区,但不在购物车中

时间:2020-03-14 21:52:50

标签: javascript php woocommerce

在wocommerce Sweden中使用以下脚本将从购物车和结帐中删除

function woo_remove_specific_country( $country ) 
{
   unset($country["SE"]);
   return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

在计算运费时,如何才能看到它仅在购物车中可见,而在“结帐”页面中却不可见?

亲切的问候, 马丁

if ( is_checkout() ) { 
function woo_remove_specific_country( $country ) 
{
   unset($country["SE"]);
   return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

 } 

在结帐时什么也没做?

也会发生以下情况:

function woo_remove_specific_country( $country ) {
    if ( is_checkout() ) {
       unset($country["SE"]); 
    }
    return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

1 个答案:

答案 0 :(得分:0)

这是未经测试的,因为我从未使用过woo Commerce-它只是作为建议而提供...希望这是您可以使用的挂钩。

每当国家/地区出现在页面上时,就会调用您的add_filter('woocommerce_countres')。因此,您需要在定位方面更加具体。

// Your code to remove the country
function woo_remove_specific_country( $country ) {
    if ( is_checkout() ) {
       unset($country["SE"]); 
    }
    return $country; 
}

// Call the filter function that you already developed... but don't call it every time the countries are shown (see the function call below this function)
function woo_remove_country_filter() {
  add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );
}

// Instead of calling the filter on every page that has "countries", only call it on the checkout form
add_action( 'woocommerce_before_checkout_form', 'woo_remove_country_filter' );