• Как правильно написать аналогичный хук wordpress?

    @konchychp Автор вопроса
    fullstack developer; founder of IT solution
    Ну кому может быть интересно мое решение (подозреваю что это костыль конечно) -> но я писал что в wordpress я ничего не понимаю - так что вот пожалуста!

    1. Function.php -> активной темы

    function redirect_st(){
    if( strstr(strtolower($_SERVER['REQUEST_URI']), "/visit-zerkalo")){
            $detect = new Mobile_Detect;
            if ( $detect->isMobile() or $detect->isTablet()) {
                header("Location: example.com", TRUE, 301);
            }
            else {
                require get_template_directory() .'/zaglushka.php'; die;
            }
    }
    else {
        return true;
    }
    }
    function redirect_zaglushka(){ 
    
    if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "yandex") 
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "bingbot")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "duckduckbot")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "slurp")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "ia_archiver")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "facebot")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "facebookexternalhit")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "konqueror")
        or strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "exabot")){
        return true;
    }
    else { 
        require get_template_directory() .'/zaglushka.php'; die;
    }
    }
    add_action('redirect_hook' , 'redirect_st');
    do_action('redirect_hook');
    // привяжем функцию к хуку
    add_action( 'my_hook', 'redirect_zaglushka' );
    // выполним хук
    do_action('my_hook');

    2. wp-load.php -> absolute path

    require_once ABSPATH . 'Mobile_Detect.php';
    3. файл заглушки добавляем в корень темы активной

    4. на всякий случай я так же поключил файл класса Mobile_Detect.php в корневой индекс
    Ответ написан
  • Мультиязычность laravel 8 с прафиксами в роуте?

    @konchychp Автор вопроса
    fullstack developer; founder of IT solution
    Пока мне не дадут более лаконическое решени или скорее я сам его найду, просто не в 3 утра, то оставлю так пока для dev версии. Может и мой вариант кому то понадобится

    web.php
    Route::get('locale/{locale}', 'Site\HomeController@changeLocale')->name('locale');
    
    Route::group(['middleware' => 'locale'], function(){
        Route::get('/', function () { return redirect (app()->getLocale(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2))); });
    });
    
    Route::group(['namespace' => 'Site', 'middleware' => 'locale', 'prefix' => '{locale}',
        'where' => ['locale' => '[a-zA-Z]{2}'],], function() {
    
        // Base websites Urls
        Route::get('/', 'HomeController@index')->name('home');
    });
    
    // Site routes

    SetLocale.php - middleware
    public function handle(Request $request, Closure $next)
        {
            App::setLocale(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
            return $next($request);
        }

    Роуты в home.blade.php
    href="{{ route('bonus', [app()->getLocale()])}}
    Ответ написан
    Комментировать
  • Мультиязычность Laravel 8 в зависимости от ГЕО юзера?

    @konchychp Автор вопроса
    fullstack developer; founder of IT solution
    Сделал по дубовому - но если кто предложит лучше - я не откажусь !

    SetLocale.php (Middleware)

    public function handle(Request $request, Closure $next)
        {
            $locale = session('locale');
    
            $defaultLocale = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    
    
            App::setLocale($locale ? $defaultLocale : $defaultLocale);
    
            return $next($request);
        }
    Ответ написан