$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>php - Shortcode created to check language not works|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

php - Shortcode created to check language not works

matteradmin10PV0评论

i need to create a shortcode to display a different Div depending on WP current language only when users are logout.

The shortcode is this one:

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="/">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="/">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="/">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="/">Recibir mi código</a></span></p></div>';
    }
}

}

add_shortcode('coupon', 'coupon_box');

Is there something you see that is wrong please?

Thank you!

i need to create a shortcode to display a different Div depending on WP current language only when users are logout.

The shortcode is this one:

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/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/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/es/comprar-atremoplus/">Recibir mi código</a></span></p></div>';
    }
}

}

add_shortcode('coupon', 'coupon_box');

Is there something you see that is wrong please?

Thank you!

Share Improve this question asked Oct 26, 2018 at 7:25 WebMateWebMate 132 bronze badges 7
  • By the way it doesn't work – WebMate Commented Oct 26, 2018 at 7:26
  • get_locale() will return a value like this en_US. Don't forget the second capital letter – Wilco Commented Oct 26, 2018 at 7:44
  • by the way, what are you trying to do with your last else? Is it a error? Warning? Because it's missing get_locale and it's shown to logged in user. – Remzi Cavdar Commented Oct 26, 2018 at 7:45
  • That's for the last language, who is spanish. Actually it's not show to logged in users right? – WebMate Commented Oct 26, 2018 at 7:48
  • I have edited your code, see below. Now backup language is English and shown to user who are not logged in. You could switch this to any language. If you want Spanish as backup language. – Remzi Cavdar Commented Oct 26, 2018 at 8:01
 |  Show 2 more comments

1 Answer 1

Reset to default 0

In a shortcode you always need to return something. It's also good practice to make your code very logical and readable. Here are a list of PHP Logical Operators: http://php/manual/en/language.operators.logical.php Complete List of WordPress Locale Codes: https://wpastra/docs/complete-list-wordpress-locale-codes/

Below an example as English as a backup/fallback language:

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/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/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/welcome-coupon/">Receive my code 
</a></span></p></div>';
    }
}
add_shortcode('coupon', 'coupon_shortcode');

Below an example as Spanish as a backup/fallback language:

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/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/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/es/comprar-atremoplus/">Recibir mi código</a></span></p></div>';
    }
}
add_shortcode('coupon', 'coupon_shortcode');
Post a comment

comment list (0)

  1. No comments so far