Masquer les prix et les fonctionnalités de paiement dans woocommerce

15

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

Existe-t-il un moyen, en utilisant des crochets ou autre, de masquer des éléments tels que les prix, le bouton Ajouter au panier, etc. dans woocommerce? Ou devrais-je simplement modifier les fichiers de modèle php?

    
posée miles 11.03.2013 - 21:46

3 réponses

22

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 dans content-product.php et content-single-product.php si vous avez besoin de supprimer plus de choses.

Je peux imaginer que vous souhaitiez masquer / supprimer davantage que les prix / boutons (comme les pages / fonctions), ce tutoriel vous donne des indications

    
réponse donnée Ewout 15.03.2013 - 10:25
13

En étendant le code ci-dessus (merci à Ewout), le code suivant supprimera tous les prix et les boutons "ajouter au panier" de tous les produits woocommerce, et expliquera pourquoi. J'avais besoin du code d'un site Web proposant des produits de vente directe et conforme à 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.';
      }

}
    
réponse donnée Angela 15.12.2013 - 12:05
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Ceci empêchera totalement le paiement et masquera tous les prix par:

  • Rendre tous les produits non achetables (ligne 1)
  • Prix de vidage HTML (ligne 2)
réponse donnée Nabil Kadimi 22.08.2017 - 03:35

Lire d'autres questions sur les étiquettes