Changer le texte “Choisir une option” sans plugin sur Woocommerce

Il est possible de changer le texte du bouton “Choisir une option” quand vous vendez un produit variable avec Woocommerce.
Pour cela, ajouter le code ci-dessous dans le fichier “function.php” de votre thème enfant

add_filter( 'woocommerce_product_add_to_cart_text', function( $text ) {
	global $product;
	if ( $product->is_type( 'variable' ) ) {
		$text = $product->is_purchasable() ? __( 'Choisir mon pack', 'woocommerce' ) : __( 'Choisir mon pack', 'woocommerce' );
	}
	return $text;
}, 10 );

Renommé le texte “Choisir mon pack” par votre texte personnalisé.

Testé sur WordPress 5.9 et Woocommerce 6.0

Besoin d’aide pour intégrer ce code ?
Contactez-moi et je me ferais un plaisir de vous aider.

Dire merci, c'est bien aussi.

15 réponses

    1. Bonjour René,
      ce code ne sert qu’à changer le texte sur votre grille de produit (page boutique).
      Il ne fonctionne pas dans la partie “variations” de vos fiches produits.
      Cordialement,

  1. Bonjour
    merci pour vos astuces … je viens de tester votre code pour modifier le texte choisir une option … ca marche !
    par contre ça me crée un problème en back-office dans l’éditeur des pages qui s’appelle Nicepage :

    Fatal error: Uncaught Error: Call to a member function is_type() on null in /home/www/jwc8980/uniq/wp-content/themes/uniqandco8/functions.php:39 Stack trace: #0 /home/www/jwc8980/uniq/wp-includes/class-wp-hook.php(309): {closure}(‘Ajouter au pani…’) #1 /home/www/jwc8980/uniq/wp-includes/plugin.php(189): WP_Hook->apply_filters(‘Ajouter au pani…’, Array) #2 /home/www/jwc8980/uniq/wp-content/plugins/woocommerce/includes/class-wc-product-simple.php(62): apply_filters(‘woocommerce_pro…’, ‘Ajouter au pani…’, Object(WC_Product_Simple)) #3 /home/www/jwc8980/uniq/wp-content/plugins/nicepage/includes/class-np-data-product.php(143): WC_Product_Simple->add_to_cart_text() #4 /home/www/jwc8980/uniq/wp-content/plugins/nicepage/includes/class-np-data-product.php(39): NpDataProduct::getProductAddToCartText() #5 /home/www/jwc8980/uniq/wp-content/plugins/nicepage/includes/class-np-data-product.php(345): NpDataProduct::getProductData(true) #6 /home/www/jwc8980/uniq/wp-content/plugins/nicepage/editor/admin.php(1209): np_data_product(2 in /home/www/jwc8980/uniq/wp-content/themes/uniqandco8/functions.php on line 39

    si vous voyez ce que cela veut dire , je vous remercie d’avance pour votre aide

    1. Bonjour Vivient,
      Je viens de retester le code, cela fonctionne bien de mon côté.
      Avez-vous bien copié le code en entier? Sans oublier un crochet ? Et surtout sans effacer un code déjà présent dans votre fichier functions.php.
      Le problème vient de votre ligne 39.
      Je vous conseille d’ajouter ce code dans le fichier de votre thème enfant et non dans le fichier de votre thème parent.
      Mettez-vous bien à la ligne, et recopiez le code.

  2. Bonjour,

    Je désespère de ne pas pouvoir justement changer ce message “choix des options”, j’avais essayé avec loco translate mais l’extension me dit qu’on à pas les droits pour modifier cette phrase …
    J’ai essayé donc avec votre code qui a l’air nickel, mais ça ne fonctionne pas :-(, le site n’est pas encore en ligne, mais le thème est ocean WP et j’ai ajouté le code dans la partie CSS/JS personnalisé du thème.
    En temps normal j’utilise toujours elementor pour faire mes sites et donc j’ajoute dans le thème enfant, mais ma cliente voulait utiliser se template tout prêt pour qu’elle puisse gérer après, et du coup je galère avec ces lignes de codes …

    De quoi ça pourrait venir ? (je n’ai pas fait d’erreur dans le code, j’ai bien copié-collé sans rien oublier )????

      1. merci pour votre retour, j’avais voulu installer le thème enfant justement, mais le soucis c’est qu’il faut le faire dès le début … si je l’installe j’aurai toute la personnalisation et le css à refaire du site. et le site est terminé du coup je ne pourrai pas tout refaire.
        Le site est en ligne : https://bydressing.com

        j’ai installé l’extension insert headers and footers pour éviter de passer par le thème enfant, mais le code s’affiche tout en haut du site sans pour autant fonctionner ????

  3. Merci Beaucoup

    Cela faisait un moment que je cherchais à changer ce bouton sans succès.
    Sur mon site, cela fonctionne avec divi pour les modules woo products mais seulement pour la page d’accueil et la page boutique principale.

    Par contre, cela ne s’affiche pas sur mes autres pages boutique :
    https://zanza-creation.com/collection-pigmee/

    Si vous avez une idée, je suis preneur.

    Bonne journée

  4. Bonjour,
    Le code fonctionne mais cela a créé un beug sur ma page d’accueil. Il est impossible d’y accéder depuis le back office et sur le front office il y a seulement le titre et plu de contenu.

  5. Bonjour Ana, ou avez-vous ajouté le code ?
    Avez-vous bien copié le code dans son intégralité ?
    Sur quel thème travaillez vous ?

  6. Bonjour

    Ce code fonctionne bien avec divi, merci bien.

    Par contre, je travaille actuellement à rendre mon site multilingue…
    … et constate que ce code semble empêcher la traduction des chaînes de caractères de WooCommerce qui se font semble-t-il automatiquement.

    Est-il possible de modifier ce code pour ajouter un autre texte en anglais à afficher dans le sous répertoire /en ou si le visiteur est anglophone, italien etc ?

    Bref : comment modifier ce texte en faisant du multilingue ?

    Site de production :
    https://zanza-creation.com
    Site de développement :
    https://a06d-e030ea76b5e3.wptiger.fr/en/
    https://a06d-e030ea76b5e3.wptiger.fr/fr/

    1. Erratum

      J’ai résolu le problème énoncé dans le message précédent en changeant de plug-in multilingue.
      Sans toutefois comprendre le pourquoi du comment.

      1. Bonjour,
        Ravis d’apprendre que ça fonctionne de votre côté. Qu’avez-vous utilisé comme module de traduction ?
        Avec WPML, je sais que c’est assez complexe à traduire…

        Jean Rémi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Suivez-moi

Les derniers articles

Célébrez le 7e anniversaire d’Elementor avec des offres incroyables

Comment créer un module WordPress étape par étape

Votre réponse a bien été publiée

Suivez-moi

Les derniers articles

Célébrez le 7e anniversaire d’Elementor avec des offres incroyables

Comment créer un module WordPress étape par étape

Votre demande a bien été envoyé, merci.

Le délai de réponse peut varier de 24h à 48h.
Merci de votre compréhension

J'ai besoin d'aide pour mon projet !

Sujet :
Changer le texte “Choisir une option” sans plugin sur Woocommerce