Masquer les prix et la fonctionnalité de paiement dans woocommerce

17

Je sais que cette question est peut-être trop large, mais je cherche un peu d'orientation. Mon client a une boutique woocommerce avec 30 à 40 produits. Pour une raison quelconque, ils ne veulent plus vendre en ligne, mais ils souhaitent conserver les pages de produits, les informations, etc. sur leur site Web.

Existe-t-il un moyen, à l'aide de crochets ou autre, de masquer des choses comme les prix, le bouton Ajouter au panier, etc. dans woocommerce? Ou dois-je simplement modifier les fichiers de modèle php?

miles
la source

Réponses:

23

heureusement, woocommerce a de nombreux crochets, cela supprime les prix et les boutons:

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 );

vous pouvez creuser content-product.phpet content-single-product.phpsi vous devez supprimer plus de choses.

Je peux imaginer qu'il y a plus que les prix / boutons que vous souhaitez masquer / supprimer (comme les pages / fonctions), ce tutoriel vous donne quelques pointeurs

Ewout
la source
Ai-je raison de penser que ces crochets doivent être insérés dans functions.php? Si oui, y a-t-il une section particulière dans laquelle je dois les insérer? S'ils fonctionnent, la fonctionnalité du chariot ne sera probablement plus visible, à part un certain style, n'est-ce pas?
James
1
oui, vous pouvez les mettre dans functions.php et peu importe où vous les placez dans une autre fonction. Habituellement, tout le chemin à la fin du fichier est le plus sûr, tant que vous ne les placez pas après le dernier ?>. Cela ne supprimera pas la page du panier, mais cela supprimera la possibilité d'ajouter quoi que ce soit au panier. Si vous n'aimez pas la page du panier, vous devriez être relativement en sécurité.
Ewout
Ça marche. Mais c'est étrange. Après avoir appliqué cela, les images du produit ne sont plus affichées. Il montre un espace vide pour leur emplacement, et quand je passe la souris dessus et clique dessus, ils me montrent l'image appropriée. Avez-vous une idée de pourquoi cela se produit-il?
Brethlosze
13

En étendant le code ci-dessus (merci Ewout), le code suivant se débarrassera de tous les prix et des boutons `` ajouter au panier '' sur tous les produits de woocommerce, ainsi que d'expliquer pourquoi. J'avais besoin du code pour un site Web qui propose des produits de vente directe et pour respecter leurs règles, je ne peux pas montrer les prix au grand public.

Ajoutez le filtre au fichier functions.php de votre thème.

    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.';
      }

}
Angela
la source
Cela est étrange. Après avoir appliqué cela, les images du produit ne sont plus affichées. Il montre un espace vide pour leur emplacement, et quand je passe la souris dessus et clique dessus, ils me montrent l'image appropriée. Avez-vous une idée de pourquoi cela se produit-il?
Brethlosze
Ce code ne fonctionne pas dans WooCommerce v 3.2.1:-)
Steve
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Cela empêchera totalement le paiement et masquera tous les prix en:

  • Rendre tous les produits non achetables (ligne 1)
  • Vider le prix HTML (ligne 2)
Nabil Kadimi
la source