基于浏览器语言登录后重定向到特定页面

时间:2017-02-24 10:03:39

标签: php redirect lang

在我的functions.php中,登录后我有一个重定向。目前这个:

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler,
                                   SslError error) {
        Log.i("","ssl certificate is: " + error.getCertificate());
        Log.i("","ssl certificate is: " + error.getCertificate().getIssuedBy().toString());
        Log.i("","ssl certificate is: " + error.getCertificate().getIssuedTo().toString());
        Log.i("","ssl certificate is: " + error.getCertificate().getValidNotAfterDate().toString());
        c = new ContextWrapper(context);
        Utils.appendLog("received SSL error on webview: "+ + error.getPrimaryError() + " on certificate: " + error.getCertificate(), false);
        try{
            String keyStoreType = KeyStore.getDefaultType();
            KeyStore keyStore = KeyStore.getInstance(keyStoreType);
            InputStream readStream = new FileInputStream(c.getFilesDir() + "/VidyoRemote/keystore.jks");
            String pass = "Ready4Launch!";
            try{
                keyStore.load(readStream, pass.toCharArray());
            }catch (Exception e){
                Log.e("","error trying to load check:" + e.getMessage());
                keyStore.load(null, pass.toCharArray());
            }
            String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
            TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
            tmf.init(keyStore);
            for (TrustManager trustManager : tmf.getTrustManagers()){
                X509TrustManager x509TrustManager = (X509TrustManager) trustManager;
                for (X509Certificate certificate : x509TrustManager.getAcceptedIssuers()){
                    Log.i("","certificate is: " + certificate.toString());
                    Log.i("","certificate is: " + certificate.getSerialNumber());
                    Log.i("","certificate is: " + certificate.getSignature());
                    Log.i("","certificate is: " + certificate.getVersion());
                    Log.i("","certificate is: " + certificate.getPublicKey());
                }
            }
        }catch (Exception e){
            Log.e("","Error is: " + e.getMessage());
        }
//        handler.proceed();
    }

这可以按预期工作,但如果浏览器语言被检测为意大利语,我需要将其与重定向结合到不同的页面,因此if($ lang ==“it_IT”)重定向到home_url('/ area_personale'),其他人到'/ dashboard'

我对此很新,所以我的问题是如何将这种语言填充到我现有的登录重定向中。或者可能有一个“更容易”的方式来解决这个问题?任何最感谢的指导!

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题。

add_action( 'template_redirect', 'wpdm_login_redirect' );
function wpdm_login_redirect(){
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

if( is_user_logged_in() && get_the_ID() == get_option('__wpdm_login_url') && $language == "it_IT" ):
    wp_redirect( home_url('/area_personale') );
    exit();

    else:

        wp_redirect( home_url('/dashboard') );

endif;
}