3

このコードを使用して価格を非表示にしています..

add_filter('woocommerce_get_price_html','members_only_price');
function members_only_price($price){
if(is_user_logged_in() ){
    return $price;
}
else return '<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Login</a> or <a href="'.site_url('/wp-login.php?action=register&redirect_to=' . get_permalink()).'">Register</a> to see price!';
}

カートへの追加を非表示にするために使用するように変更しようとしました..しかし、役に立ちません..誰か?

4

4 に答える 4

5

上記のコードを拡張すると (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.';
  }

}
于 2013-12-15T11:07:46.453 に答える
1

このようなことを試しましたか?ユーザーがログインしているときにのみ価格を表示するように woocommerce を設定します。

add_filter('catalog_visibility_alternate_price_html', 'my_alternate_price_text', 10, 1);
function my_alternate_price_text($content) {
    return '<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Login</a> or <a href="'.site_url('/wp-login.php?action=register&redirect_to=' . get_permalink()).'">Register</a> to see price!';
}

参照: http://docs.woothemes.com/document/catalog-visibility-options/

編集:

参照資料にはカートの可視性の参照があります

add_filter('catalog_visibility_alternate_add_to_cart_button', 'my_alternate_button', 10, 1);

function my_alternate_button($content) {

    return '<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Login</a> or <a href="'.site_url('/wp-login.php?action=register&redirect_to=' . get_permalink()).'">Register</a> to see cart!';

}
于 2013-05-13T00:55:59.640 に答える
0

CSSはどうですか?

button.add-to-cart {
    display: none;
}

body.logged-in button.add-to-cart {
    display: block;
}
于 2015-01-14T08:34:59.577 に答える
0

woocommerce_is_purchasableこれは、およびwoocommerce_get_price_htmlフックを使用して簡単に実行できます。

コード:

// Disable purchase for non-logged-in users. (Remove add-to-cart button).
function m3wc_woocommerce_is_purchasable( $is_purchasable, $product ) {
    if ( ! is_user_logged_in() ) {
        return false;
    }

    return $is_purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'm3wc_woocommerce_is_purchasable', 10, 2 );

// Show "Login to see prices" instead of price for non-logged in users.
function m3wc_woocommerce_get_price_html( $price ) {
    if ( ! is_user_logged_in() ) {
        return '<a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Login</a> to see prices';
    }

    return $price;
}
add_filter( 'woocommerce_get_price_html', 'm3wc_woocommerce_get_price_html', 10, 2 );

そして結果:

ログインしていないユーザー

出典: WooCommerce - ログインしていないユーザーの購入を無効にします。(カートに入れるボタンを削除します)。

于 2019-11-30T16:25:19.163 に答える