2016-08-08 19 views
3

誰でも私がこのコードをカスタマイズするのを手伝ってくれることがありますか?私は、このコードに適用される条件を変更したい:WooCommerce Checkout URLフック - 製品カテゴリに基づいて条件を変更してください

<?php 
/* 
Plugin Name: Modify Klarna Checkout URL 
Plugin URI: http://krokedil.com 
Description: Change checkout URL for Klarna Checkout if user isn't from a specific country 
Version: 1.0 
Author: Krokedil 
Author URI: http://krokedil.com 
*/ 
add_filter('woocommerce_get_checkout_url', 'krokedil_change_checkout_url', 30); 
function krokedil_change_checkout_url($url) { 
    $allowed_countries = array('NO'); 
    $customer_country = WC()->customer->get_default_country(); 
    if(!in_array($customer_country , $allowed_countries)) { 
     $url = wc_get_page_permalink('checkout'); 
    } 
    return $url; 
} 

は、それがカスタムチェックアウトのURLを持つように、WooCommerceにおけるいくつかのカテゴリに属している製品のため、代わりに可能ですか?

おかげ

答えて

2

はい、それはいくつかの変更することは可能です:このコードは、プラグインファイルにしたり、アクティブな子テーマやテーマ

のfunction.phpファイルに行く

add_filter('woocommerce_get_checkout_url', 'krokedil_change_checkout_url', 30); 
function krokedil_change_checkout_url($checkout_url) { 

    // Define your SPECIAL CATEGORY here AND your CUSTOM URL 
    $my_cat = 'Cat name'; // or for multiple categories 
    // $my_cat = array('Cat name1', 'Cat name2'); 
    $my_url = 'http://my_custom_url.com/checkout/'; // custom URL 

    $bool_cat = false; 
    if (sizeof(WC()->cart->cart_contents) > 0) { 
     foreach (WC()->cart->get_cart() as $cart_item) { 
      $item = $cart_item['data']; 

      // => Updated a mistake in this line 
      if(!empty($item) && !$bool_cat && has_term($my_cat, 'product_cat', $item->id)){ 
       $bool_cat = true; 
      } 
     } 
     if ($bool_cat) { 
      $checkout_url = $my_url; 
     } 
     // This is optional 
     else { 
      $checkout_url = WC()->cart->get_checkout_url(); 
     } 
    } 
    return $checkout_url; 
} 

を参考文献:

+0

それも間違いであるか、正しいのですか? !$ cat –

関連する問題