2017-02-11 11 views
2

WooCommerceでは、自分の商品をアップロードできるベンダープラグインを使用しています。バーチャルおよびダウンロード可能な商品設定を自動的に有効にする

しかし、私は彼らに仮想製品とダウンロード可能な製品をアップロードすることをおすすめします。

通常のウーココマースの「商品ページを追加」でこれらのオプションを削除(または非表示)して自動チェックする方法はありますか?

私はすべての提出を穏やかにするため、不可能である必要はありません。提出プロセスをできるだけ簡単にしたいだけです。

おかげ

+1

私のために動作します:この行で

if (in_array($targeted_user_role, $user_roles)){ 

...を'Virtual'と' Download'チェックボックスを自動チェックする方法は分かりませんが、オプションを隠すことができます。[このリンク]をチェックしてください(http://cartible.com/tips/customizin g-product-types-selectbox-in-woocommerce /)を使用します。 –

+0

ありがとう、主な問題は、実際には自動的に選択することです。私が自動選択することができれば隠れているだろう – akkatracker

答えて

4

これは可能ですが、テストし、説明するのは長く複雑静かです...あなたは2つの方法、特定のユーザーの役割や、ユーザーの役割の特定の機能によって条件で、このユーザーをターゲットにする必要があります。その後

は、以下の実施例で

...注入し、CSSと、この隠された設定値を設定するためのJavaScript/jQueryを使用していくつかの設定を非表示にすることも可能ですが、私は'virtual''downloadable'を有効にします設定jQueryを使ってcheeckboxesを、私は不透明度のCSSルールでほとんど完全にそれらを隠す...

私はに夢中にカスタム関数を使用しますアクションフック、この方法:

add_action('woocommerce_product_options_general_product_data', 'hiding_and_set_product_settings'); 
function hiding_and_set_product_settings(){ 

    ## ==> Set HERE your targeted user role: 
    $targeted_user_role = 'administrator'; 

    // Getting the current user object 
    $user = wp_get_current_user(); 
    // getting the roles of current user 
    $user_roles = $user->roles; 

    if (in_array($targeted_user_role, $user_roles)){ 

     ## CSS RULES ## (change the opacity to 0 after testing) 
     // HERE Goes OUR CSS To hide 'virtual' and 'downloadable' checkboxes 
     ?> 
     <style> 
      label[for="_virtual"], label[for="_downloadable"]{ opacity: 0.2; /* opacity: 0; */ } 
     </style> 

     <?php 

     ## JQUERY SCRIPT ## 
     // Here we set as selected the 'virtual' and 'downloadable' checkboxes 
     ?> 

     <script> 
      (function($){ 
       $('input[name=_virtual]').prop('checked', true); 
       $('input[name=_downloadable]').prop('checked', true); 
      })(jQuery); 
     </script> 

     <?php 
    } 

} 

コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルやも任意のプラグインファイルになります。

「管理者」ユーザーロールを特定の対象ユーザーロールに置き換える必要があります。
このチェックボックスを完全に非表示にするには、不透明度を0に設定する必要があります。

は、テストの結果、多くのユーザーの役割の


追加作品:

:この行で

$targeted_user_role = 'administrator'; 

...:

1)この行を交換します

2)そしてまた、この行に置き換えます。

if (array_intersect($targeted_user_roles, $user_roles)){ 

は今のコードは、多くのユーザ定義のユーザーの役割

+0

ああ解決しました - 愚かな私はPHPを閉じるのを忘れましたか?> ありがとう – akkatracker

関連する問題