Maison  >  Questions et réponses  >  le corps du texte

Remplacez le bouton « Ajouter au panier » sur la page d'un seul produit WooCommerce si le panier n'est pas vide

<p>J'ai le code PHP suivant dans mon application Code Snippets (plugin) : </p> <pre class="brush:php;toolbar:false;">add_action( 'woocommerce_product_meta_end', 'message_when_other_product_already_in_cart', 10 ); fonction message_when_other_product_already_in_cart() { if (WC()->cart->get_cart_contents_count() > 0) { $message = 'Veuillez finaliser votre achat ou vider votre panier avant d'ajouter un autre produit à votre panier. '; echo '<b><p><p>'.$message.'</b></p>'; } }</pré> <p>Ce dont j'ai besoin, c'est d'un moyen de masquer le bouton « Ajouter au panier ». Je ne sais pas ce qui peut être utilisé dans le code PHP pour masquer le bouton. Dans une question précédente que j'ai posée, quelqu'un m'a suggéré d'utiliser : </p> <pre class="brush:php;toolbar:false;">if ( WC()->cart->get_cart_contents_count() > 0) { $is_purchasable = faux ; } retourner $is_purchasable;</pre> <p>Mais comme nos exigences ont changé, je souhaite simplement <strong>masquer le bouton</strong> et afficher le message "Avant de pouvoir ajouter...". Je ne veux pas utiliser $is_purchasable = false ; est-ce possible ? </p> <p>J'ai essayé différentes méthodes, notamment l'intégration de CSS dans le code PHP. Cependant, tous les efforts n’ont pas réussi à simplement masquer le bouton « Ajouter au panier ». </p>
P粉331849987P粉331849987401 Il y a quelques jours485

répondre à tous(1)je répondrai

  • P粉879517403

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

    Ce qui suit remplacera, sur une seule page produit, le bouton "Ajouter au panier" par un message texte personnalisé si le panier n'est pas vide :

    // 添加到购物车替换文本消息
    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 );
            }
        }
    }
    

    Le code est placé dans le fichier function.php de votre thème enfant (ou dans un plugin). Testé et disponible.

    Vous obtiendrez des résultats similaires à :

    répondre
    0
  • Annulerrépondre