2016-03-30 8 views
0

私は定義された2つの配送方法があります:WooCommerce:デフォルトのテーブルレート配送方法を設定するにはどうすればよいですか?

  1. 表の料金 - 優先度1
  2. ローカルピックアップ - 表料金の中で優先順位2

、私は3つのオプションがあります:登録

  1. をオーストラリアの郵便局(2営業日から8営業日):$ 6.50
  2. トラッキングと貨物保険:$ 7.25
  3. 全国配達(5〜12営業日):$ 1.40

ローカル表料金のエリア内に入るすべての注文は(これらの3つのオプションが提示されており、デフォルトでは、オプション3を選択した私は仮定ので、

デフォルトでテーブルレートが優先されますが、実際のテーブルレートでは優先順位を定義することはできません。私は、デフォルトの配送方法がここで設定されていることを発見した登録オーストラリア・ポスト(2〜8営業日)

WC()->session->[chosen_shipping_methods] => a:1:{i:0;s:17:"table_rate-5 : 70";}

と明らかにアクセスすることができます私は、デフォルトのオプションは、オプション1になりたいです次の2つの方法を使用して修正:

WC()->session->get('chosen_shipping_methods'); 
WC()->session->set('chosen_shipping_methods', $chosen_method); 

をしかし、私はちょうど新しいものを設定することはできません現在 chosen_shipping_methodsを得ることができます。

誰もが、私が見てすべきかに私を導くことができます私はアクションwoocommerce_shipping_method_chosenを使用して、それを設定しようとしているが、それは

を働いていないのですか?

+0

これはオンラインですか?少なくとも私たちは見ることができましたか? – Reigel

+0

はい、あなたは - https://www.janomesewingcentre.com.au/ –

答えて

0

これは私がこれを使用して終了するものです

/*=Use the shipping method filter to set the "selected" shipping method to 
* the first (default) method in the list 
**************************************************************************/ 
function oley_reset_default_shipping_method($method, $available_methods) { 

    $method = key($available_methods); 
    return $method; 

} 
add_filter('woocommerce_shipping_chosen_method', 'oley_reset_default_shipping_method', 10, 2); 

:必要に応じて働いていた(注:私が欲しかった出荷率は、実際にリスト内の最初だったが、ただ、デフォルトで選択されていなかったので、これは働いていた)

0

配送方法を管理ダッシュボードで並べ替えることができます。 Woocommerce> Shipping> Shipping Methodsをドラッグして、順序を変更してください。唯一のあなたのウェブサイト上で見て、コードを見ていないことで

enter image description here

+0

で見ることができます。それは無関係であるため、全く効果がありません。出荷優先度は問題ありません - デフォルト料金の選択は問題 –

+0

テーブルレートですか?あなたは特定の船積みアドオンについて話していますか?もしそうなら、どちらですか?彼らの文書を見ましたか? – Lutrov

+1

この回答は正しいはずです。最初の方法は常にチェックアウトのデフォルト選択です。 – Reigel

1

、私はこれがあなたが望むものであるかもしれない推測している...

add_action('template_redirect', 'reigel_chosen_shipping_methods'); 

function reigel_chosen_shipping_methods(){ 
    remove_action(current_filter(), __FUNCTION__); 
    WC()->session->set('chosen_shipping_methods', array('table_rate-7 : 72')); 
} 
+0

ありがとう! WooCommerce 3.0.7では、これを有効にする唯一の方法でした。 WooCommerceは、 "woocommerce_shipping_chosen_method"フィルタを使用してデフォルトの配送方法を変更しようとするすべての試みを無視しているようです。たぶん私のコード内の他の競合するものが原因です。私は別のセッション変数を追加してセッションの配送方法が一度変更されたかどうかを確認しました(顧客がカートをリロードするたびに元に戻すことなく好みの方法を選択できるようにするため)。 – cjs1978

関連する問題