woocommerceで価格とチェックアウト機能を隠す


17

この質問は広すぎるかもしれませんが、少し方向性を探しています。私のクライアントには、30〜40の製品を扱うwoocommerceストアがあります。何らかの理由で、彼らはもはやオンラインで販売したくないが、彼らは彼らのウェブサイトに製品ページ、情報などを保持したい。

フックなどを使用して、woocommerceで価格などを非表示にしたり、カートボタンに追加したりする方法はありますか?または、phpテンプレートファイルを編集するだけですか?

回答:


23

幸い、woocommerceには多くのフックがあり、これにより価格とボタンが削除されます。

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

あなたがに掘ることができるcontent-product.phpcontent-single-product.php、あなたはより多くのものを削除する必要がある場合。

非表示/削除したい価格/ボタン(ページ/機能など)だけではないことを想像できます。このチュートリアルでは、いくつかの指針を示します。


これらのフックをfunctions.phpに挿入する必要があると思いますか?もしそうなら、私はそれらを入れる必要がある特定のセクションがありますか?それらが機能する場合、おそらく、スタイリングを除いて、カートの機能は表示されなくなるでしょうか?
ジェームズ

1
はい、functions.phpに配置できます。別の関数内のどこに配置してもかまいません。通常、最後の後にそれらを置かない限り、ファイルの最後のすべての方法が最も安全です?>。これはカートページを削除しませんが、実際にはカートに何かを追加する可能性を削除します。どこでもカートページが気に入らない場合は、比較的安全です。
ユーアウト

できます。しかし、これは奇妙です。これを適用すると、製品の画像が表示されなくなりました。それらの場所に空のスペースが表示され、マウスをそれらの上に置いてクリックすると、適切な画像が表示されます。なぜそれが起こっているのか考えていますか?
-Brethlosze

13

上記のコードを拡張し(Ewoutに感謝)、次のコードはすべてのwoocommerce製品のすべての価格と「カートに追加」ボタンを取り除き、理由を説明します。直接販売の製品を提供するWebサイトのコードが必要であり、そのルールを遵守するために、価格を一般に公開することはできません。

テーマのfunctions.phpファイルにフィルターを追加します。

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}

これはおかしい。これを適用すると、製品の画像が表示されなくなりました。それらの場所に空のスペースが表示され、マウスをそれらの上に置いてクリックすると、適切な画像が表示されます。なぜそれが起こっているのか考えていますか?
-Brethlosze

このコードは、WooCommerce Vに動作しません3.2.1:-)
スティーブ・

1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

これにより、チェックアウトが完全に防止され、すべての価格が非表示になります。

  • すべての製品を購入不可にする(1行目)
  • 価格HTMLを空にする(行2)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.