web-dev-qa-db-fra.com

Shortcode créé pour vérifier la langue ne fonctionne pas

j'ai besoin de créer un shortcode pour afficher une div différente en fonction de WP langue actuelle uniquement lorsque les utilisateurs se déconnectent.

Le shortcode est celui-ci:

function coupon_box() {

$user = is_user_logged_in() ;


if ($user == false) {

    if (get_locale() == 'en_Us') {
    echo ' <div class="discount"><h3 style="text-align: left;">Is this your first order?</h3><p style="text-align: left;">Request your discount code for a value of 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/welcome-coupon/">Receive my code 
</a></span></p></div>';
}

    elseif (get_locale() == 'fr_Fr') {

    echo '<div class="discount"><h3 style="text-align: left;">C’est votre première commande?</h3><p style="text-align: left;">Demandez votre code de réduction d’une valeur de 20 Euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://atremoplus.fr/bienvenue/">Recevoir mon code</a></span></p></div>';
    }

    elseif (get_locale() == 'de_De') {
    echo '<div class="discount"><h3 style="text-align: left;">Ist dies Ihre erste Bestellung?</h3><p style="text-align: left;"> Fordern Sie Ihren persönlichen 20 Euros Rabatt.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/de/atremoplus-kaufen/">Gutscheincode anfordern</a></span></p></div>';
    }

    else {

    echo '<div class="discount"><h3 style="text-align: left;"> ¿Este es su primer pedido?</h3><p style="text-align: left;"> Solicite su código de descuento por un valor de 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/es/comprar-atremoplus/">Recibir mi código</a></span></p></div>';
    }
}

}

add_shortcode('coupon', 'coupon_box');

Y at-il quelque chose que vous voyez qui ne va pas s'il vous plaît?

Je vous remercie!

1
WebMate

Dans un shortcode, vous devez toujours renvoyer quelque chose. Il est également judicieux de rendre votre code très logique et lisible. Voici une liste de PHP opérateurs logiques: http://php.net/manual/en/language.operators.logical.php Liste complète des codes locaux de WordPress: https://wpastra.com/docs/complete-list-wordpress-locale-codes/

Ci-dessous un exemple en anglais en tant que langue de sauvegarde/secours:

function coupon_shortcode() {
    $logged_in = is_user_logged_in();

    if (get_locale() == 'fr_FR' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">C’est votre première commande?</h3><p style="text-align: left;">Demandez votre code de réduction d’une valeur de 20 Euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://atremoplus.fr/bienvenue/">Recevoir mon code</a></span></p></div>';
    }
    elseif (get_locale() == 'de_DE' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">Ist dies Ihre erste Bestellung?</h3><p style="text-align: left;"> Fordern Sie Ihren persönlichen 20 Euros Rabatt.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/de/atremoplus-kaufen/">Gutscheincode anfordern</a></span></p></div>';
    }
    elseif (get_locale() == 'es_ES' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">¿Este es su primer pedido?</h3><p style="text-align: left;"> Solicite su código de descuento por un valor de 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/es/comprar-atremoplus/">Recibir mi código</a></span></p></div>';
    }
    elseif ($logged_in == false) { // Backup/fallback language is English and is shown only when user is not logged in
        return '<div class="discount"><h3 style="text-align: left;">Is this your first order?</h3><p style="text-align: left;">Request your discount code for a value of 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/welcome-coupon/">Receive my code 
</a></span></p></div>';
    }
}
add_shortcode('coupon', 'coupon_shortcode');

Ci-dessous un exemple en espagnol en tant que langue de secours/secours:

function coupon_shortcode() {
    $logged_in = is_user_logged_in();

    if (get_locale() == 'en_US' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">Is this your first order?</h3><p style="text-align: left;">Request your discount code for a value of 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/welcome-coupon/">Receive my code
    </a></span></p></div>';
    }
    elseif (get_locale() == 'fr_FR' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">C’est votre première commande?</h3><p style="text-align: left;">Demandez votre code de réduction d’une valeur de 20 Euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://atremoplus.fr/bienvenue/">Recevoir mon code</a></span></p></div>';
    }
    elseif (get_locale() == 'de_DE' && $logged_in == false) {
        return '<div class="discount"><h3 style="text-align: left;">Ist dies Ihre erste Bestellung?</h3><p style="text-align: left;"> Fordern Sie Ihren persönlichen 20 Euros Rabatt.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/de/atremoplus-kaufen/">Gutscheincode anfordern</a></span></p></div>';
    }
    elseif ($logged_in == false) { // Backup/fallback language is Spanish and is shown only when user is not logged in
        return '<div class="discount"><h3 style="text-align: left;">¿Este es su primer pedido?</h3><p style="text-align: left;"> Solicite su código de descuento por un valor de 20 euros.</p><p style="text-align: left;"><span style="text-decoration: underline;"><a class="myButton" href="https://www.atremoplus.net/es/comprar-atremoplus/">Recibir mi código</a></span></p></div>';
    }
}
add_shortcode('coupon', 'coupon_shortcode');
0
Remzi Cavdar