为检查语言而创建的快捷代码不起作用

时间:2018-10-26 作者:WebMate

我需要创建一个短代码,以便仅在用户注销时根据WP当前语言显示不同的Div。

短代码如下:

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\');
请问你看到什么地方不对吗?

非常感谢。

1 个回复
最合适的回答,由SO网友:Remzi Cavdar 整理而成

在短代码中,您总是需要返回一些内容。使代码具有很强的逻辑性和可读性也是一种很好的做法。以下是PHP逻辑运算符列表:http://php.net/manual/en/language.operators.logical.phpWordPress语言环境代码的完整列表:https://wpastra.com/docs/complete-list-wordpress-locale-codes/

以下是以英语作为备份/回退语言的示例:

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\');
以下是西班牙语作为备份/回退语言的示例:

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\');

结束

相关推荐

Function on unction.php出现问题

我对函数上的一些函数有问题。php。我想使用get\\u tems\\u by(“slug”,$slug,“category”);但它在函数对函数的内部不起作用。php。当我按ID更改slug并给出一个随机ID时,它起作用了。我确信鼻涕虫是存在的。我也尝试过:add_action( \'init\', \'wpse27111_tester\', 999 ); function wpse27111_tester() { $term = get_term_by(\'slug\'