4
votes

Modifier le texte de l'erreur de paiement WooCommerce sur la page de paiement

Je souhaite ajouter mon propre texte d'erreur de paiement personnalisé (nous utilisons les fonds du compte et souhaitons ajouter une invite supplémentaire)

Comment puis-je changer, ce qui suit qui montre quand il n'y a pas assez de fonds, de:

Désolé, il semble qu'aucun mode de paiement ne soit disponible pour votre état. Veuillez nous contacter si vous avez besoin d'aide ou souhaitez prendre d'autres dispositions.

à un message d'erreur avec un lien comme ci-dessous:

Vous ne disposez pas des fonds suffisants pour traiter cette commande, veuillez <a href="/my-account">top up</a> ou effectuer une mise à niveau. Merci.

Le texte semble être stocké dans templates / checkout / payment.php

https://github.com/woocommerce/woocommerce/blob/ef05bfccfc01bb2c621ef1293e61f7c57950670f/templates/checkout/payment.php

Comment puis-je changer cela sans qu'il ne soit effacé par une mise à niveau de la version de Woocommerce?


0 commentaires

4 Réponses :


0
votes
add_filter( 'woocommerce_no_available_payment_methods_message', 'change_payment_message', 10, 2);
function change_payment_message( $value, $arg2 ) {
    $message = WC()->customer->get_billing_country()?'You do not have sufficent funds to process this order, please<a
  href="/my-account">top up</a> or upgrade. Thank you':'Please fill in your details above to see available payment methods.';
    return $message;
}

2 commentaires

Le gestionnaire de fichiers cPanel indique une Syntax Error Unexpected T_FUNCTION


Ce code casse la page de paiement, ce qui entraîne "The site is experiencing technical difficulties." message



3
votes

Dans WordPress, les filtres sont des fonctions qui peuvent être liées à un événement (appelées hooks). Pendant l'exécution, lorsque l'événement est déclenché, le filtre est appliqué à la sortie de données générée par le hook d'événement. Il est important de se rappeler que les filtres exécutent leurs actions sur les données qu'ils reçoivent, puis renvoient ces données avant qu'elles ne soient affichées dans le navigateur.

Dans le fichier que vous avez joint (payment.php), vous avez

function your_custom_function_name_here( $content ) {
    //your changes here
    $content = "bla bla";
    // Returns the content.
    return $content;
}

Vous pouvez donc utiliser le filtre "woocommerce_no_available_payment_methods_message" pour modifier le texte

Créez une fonction personnalisée et ajoutez-la au fichier de fonctions ou à un petit plugin.

Tout d'abord, nous connectons notre propre fonction à l'événement woocommerce

add_filter( 'woocommerce_no_available_payment_methods_message', 'your_custom_function_name_here' );

Maintenant, nous définissons ce que notre fonction ferait.

apply_filters( 'woocommerce_no_available_payment_methods_message' ....


1 commentaires

Salut Mo, merci pour ça. Il y a une prime sur cette question. Veuillez publier une solution de code testée complète pour l'obtenir.Merci Gracie



1
votes

Il vous suffit d'ajouter un filtre et d'appliquer votre modification dans le fichier functions.php de votre thème enfant:

add_filter( 'woocommerce_no_available_payment_methods_message', function( $no_gateways_message ) {
    return 'You do not have sufficent funds to process this order, please <a href="' . home_url( '/my-account/' ) . '">top up</a> or upgrade. Thank you.';
});

Faites-moi savoir si cela a fonctionné.


0 commentaires

0
votes

Merci @cornel, votre code a fonctionné pour moi.

J'ai pu également le modifier comme indiqué ci-dessous:

add_filter( 'woocommerce_no_available_payment_methods_message', function( $no_gateways_message ) {
    return 'Sorry, you do not have sufficent funds to process this order, please <a href="' . home_url( '/my-account/' ) . '">Click here top up</a> or upgrade. Thank you.';
});


1 commentaires

salut @godson! si vous trouvez la réponse d'un autre utilisateur utile, veuillez envisager de voter pour sa réponse et de laisser un commentaire sur sa réponse elle-même, plutôt que de créer une nouvelle réponse