web-dev-qa-db-ja.com

ウーコマースで価格とチェックアウト機能を隠す

私はこの質問が広すぎるかもしれないことを知っています、しかし私は少し方向性を探しています。私のクライアントは30-40の商品を扱うウーコマースストアを持っています。何らかの理由で彼らはもうオンラインで販売したくないが、彼らは彼らのウェブサイト上の製品ページ、情報などを保持したい。

フックやその他の方法を使用して、価格のようなものを隠したり、買い物ボタンを追加したりする方法はありますか。それともphpテンプレートファイルを編集するだけですか?

15
miles

幸いなことに、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を掘り下げることができます。

私はあなたが(ページ/機能のように)あなたが隠し/削除したいだけの価格/ボタン以上のものがあると想像することができます、 このチュートリアル あなたにいくつかのポインタを与える

22
Ewout

上記のコードを拡張して(感謝Ewout)、次のコードはすべてのwoocコマース製品のすべての価格と 'カートに追加'ボタンを取り除き、またその理由についての説明を提供します。私は直接販売の商品を提供するウェブサイトのコードが必要で、それらの規則に従うために、私は一般の人々に価格を見せることができません。

テーマの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.';
      }

}
13
Angela
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

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

  • すべての商品を購入不可にする(1行目)
  • 空の価格HTML(2行目)
1
Nabil Kadimi