代码之家  ›  专栏  ›  技术社区  ›  Elichy

在Woocomerce中添加内联CSS(特定国家除外)

  •  2
  • Elichy  · 技术社区  · 6 年前

    如果国家不是法国,我想在我的Woomcommerce网站中添加CSS样式,因为我需要在除法国以外的所有国家隐藏一个按钮。我试过下面的代码

    add_filter( 'woocommerce_state_FR' , 'custom_css_countries', 10, 1 );
    function custom_css_countries($mycss) {
      $country = array('FR');
      if( ! in_array( $country ) ){
        echo '<style>#payez-sur-12-mois{display:none;}</style>';
      }
      return $mycss;
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   LoicTheAztec    6 年前

    你不需要使用wc_地理定位类来实现这一点。相反,你可以使用 WC_Customer 已使用 WC_Countries WC_Geolocation 下列挂接函数中的类:

    add_action( 'wp_head' , 'custom_inline_css', 200 );
    function custom_inline_css() {
        // For all countries except 'FR'
        if( WC()->customer->get_billing_country() !== 'FR'  )
            ?><style>#payez-sur-12-mois{display:none !important;}</style><?php
    }
    

    代码放在活动子主题(或活动主题)的function.php文件中。测试和工作。


    更新的 -如果你真的想用 地理定位 ,请改为:

    add_action( 'wp_head' , 'custom_inline_css', 200 );
    function custom_inline_css() {
        // Get an instance of the WC_Geolocation object class
        $geolocation_instance = new WC_Geolocation();
        // Get user IP
        $user_ip_address = $geolocation_instance->get_ip_address();
        // Get geolocated user IP country code.
        $user_geolocation = $geolocation_instance->geolocate_ip( $user_ip_address );
    
        // For all countries except 'FR'
        if( $user_geolocation['country'] !== 'FR' ){
            ?><style>#payez-sur-12-mois{display:none !important;}</style><?php
        }
        // For testing (to be removed):
        echo '<!-- GEO Located country: '.$user_geolocation['country'].' -->';
    }
    

    代码放在活动子主题(或活动主题)的function.php文件中。测试和工作。

    地理IP相关答案: