Heim  >  Fragen und Antworten  >  Hauptteil

Ersetzen Sie die Schaltfläche „In den Warenkorb“ auf der WooCommerce-Einzelproduktseite, wenn der Warenkorb nicht leer ist

<p>Ich habe den folgenden PHP-Code in meiner Code-Snippets-App (Plugin): </p> <pre class="brush:php;toolbar:false;">add_action( 'woocommerce_product_meta_end', 'message_when_other_product_already_in_cart', 10 ); Funktion message_when_other_product_already_in_cart() { if (WC()->cart->get_cart_contents_count() > 0) { $message = 'Bitte schließen Sie Ihren Kauf ab oder leeren Sie Ihren Warenkorb, bevor Sie ein weiteres Produkt in Ihren Warenkorb legen. '; echo '<b><p><p>'.$message.'</b></p>'; } }</pre> <p>Was ich brauche, ist eine Möglichkeit, die Schaltfläche „In den Warenkorb“ auszublenden. Ich bin mir nicht sicher, was im PHP-Code verwendet werden kann, um die Schaltfläche auszublenden. In einer früheren Frage, die ich gestellt habe, hat mir jemand vorgeschlagen, Folgendes zu verwenden: </p> <pre class="brush:php;toolbar:false;">if ( WC()->cart->get_cart_contents_count() > 0) { $is_purchasable = false; } return $is_purchasable;</pre> <p>Aber da sich unsere Anforderungen geändert haben, möchte ich die Schaltfläche <strong>ausblenden</strong> und die Meldung „Bevor Sie hinzufügen können…“ anzeigen. Ich möchte nicht $is_purchasable = false verwenden. Ist das möglich? </p> <p>Ich habe verschiedene Methoden ausprobiert, einschließlich der Einbettung von CSS in den PHP-Code. Allerdings scheiterten alle Bemühungen daran, die Schaltfläche „In den Warenkorb“ einfach auszublenden. </p>
P粉331849987P粉331849987401 Tage vor488

Antworte allen(1)Ich werde antworten

  • P粉879517403

    P粉8795174032023-08-17 11:41:37

    以下将在单个产品页面上,如果购物车不为空,则用自定义文本消息替换“添加到购物车”按钮:

    // 添加到购物车替换文本消息
    function add_to_cart_replacement(){
        // 您的消息文本
        $message_text = __( "在您可以将另一个产品添加到购物车之前,请完成购买或清空购物车。", "woocommerce" );
        
        // 显示文本消息
        echo '<p class="button message">' . $message_text . '</p>';
    }
    // 用自定义文本消息替换单个产品的添加到购物车按钮
    add_action( 'woocommerce_single_product_summary', 'replace_single_add_to_cart_button', 1 );
    function replace_single_add_to_cart_button() {
        global $product;
        
        // 如果购物车不为空
        if( ! WC()->cart->is_empty() ){
            // 对于变量产品类型(保留属性选择字段)
            if( $product->is_type( 'variable' ) ) {
                remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
                add_action( 'woocommerce_single_variation', 'add_to_cart_replacement', 20 );
            }
            // 对于其他所有产品类型
            else {
                remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
                add_action( 'woocommerce_single_product_summary', 'add_to_cart_replacement', 30 );
            }
        }
    }
    

    代码放在您的子主题的functions.php文件中(或插件中)。已测试并可用。

    您将得到类似以下的结果:

    Antwort
    0
  • StornierenAntwort