Задать вопрос
  • Как разрешить регистрацию Discord новым пользователям Wordpress?

    @zeaovede Автор вопроса
    Решение на стороне wordpress (Настройки - Общие)
    665d9f5faffa7072984424.png
    Ответ написан
    Комментировать
  • Как сделать отображение комментариев пользователя из текущей сессии wordpress?

    @zeaovede Автор вопроса
    Если что, делается это вот так. (собрано на коленке, но работает).

    <?php
        $args = array(
            'post_author' => $current_user->ID,
            'number' => 10, // how many comments to retrieve
            'status' => 'approve'
            );
    
        $comments = get_comments( $args );
    
        if ( $comments )
        {
            $output.= "<ul>\n";
            foreach ( $comments as $c )
            {
            $output.= '<li>';
           // $output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
            $output.= get_comment_text($c->comment_ID);
            $output.= '</a>, Posted on: '. mysql2date('m/d/Y', $c->comment_date, $translate);
            $output.= "</li>\n";
            }
            $output.= '</ul>';
    
            echo $output;
        } else { echo "No comments made";}
    ?>
    Ответ написан
    Комментировать
  • Как передать несколько параметров js?

    @zeaovede Автор вопроса
    Если что, то я решил это вот так вот. На сколько это правильно или нет понятия не имею, но это работает. Из минусов, код грузится медленно.
    page 1
    <a id="lol" href="/apply/" class="card shadow-lg lift h-100">
    ...


    <script>document.getElementById('lol').onclick = function () {
     localStorage.setItem('game', "LOL");
     }
     </script>
     <script>document.getElementById('val').onclick = function () {
     localStorage.setItem('game', "VAL");
     }
     </script>
     <script>document.getElementById('tft').onclick = function () {
     localStorage.setItem('game', "TFT");
     }
     </script>
     <script>document.getElementById('wr').onclick = function () {
     localStorage.setItem('game', "WR");
     }
     </script>
     <script>document.getElementById('ow').onclick = function () {
     localStorage.setItem('game', "OW");
     }
     </script>


    page 2

    <h1 id="game"></h1>

    <script>
        let game = localStorage.getItem('game');
        let lol = document.getElementById('game')
        let val = document.getElementById('game')
        let tft = document.getElementById('game')
        let wr = document.getElementById('game')
        let ov = document.getElementById('game')
        
        window.onload = function() {
        if(game == null){
            lol.innerHTML;
            val.innerHTML;
            tft.innerHTML;
            wr.innerHTML;
            ov.innerHTML;
        }
        else {
            lol.innerHTML = game;
            val.innerHTML = game;
            tft.innerHTML = game;
            wr.innerHTML = game;
            ov.innerHTML = game;
        }
        }
    </script>
    Ответ написан
  • Как передать данные с одной страницы на другую с помощью js?

    @zeaovede Автор вопроса
    Не могу сказать на сколько это решение грамотное с точки конкретного места использования, плюс, возможны какие-то недочеты в коде. (делал по видео с ютуба).
    У меня сработало такое решение
    Страница 1
    <a id="Lol" href="/apply/" class="card shadow-lg lift h-100">


    <script>document.getElementById('Lol').onclick = function () {
     localStorage.setItem('game', "League of Legends");
     }
     </script>


    Страница 2

    <h1 id="game" ></h1>

    <script>
        let game = localStorage.getItem('game');
        let job = document.getElementById('game')
        
        window.onload = function() {
        if(game == null){
            job.innerHTML;
        }
        else {
            job.innerHTML = game;
        }
        }
    </script>
    Ответ написан
    Комментировать
  • Как вывести время в AM формате?

    @zeaovede Автор вопроса
    Переписал под вордпресс. Здесь формат 24, русский язык, часовой пояс ноу проблемс. В общем все по феншую. Сделано с любовью, и для людей.
    function getUserRegDate() {
    $current_user = wp_get_current_user();
    $user_info = get_userdata($user_id);
    if ( is_user_logged_in() ) { // Проверяем, залогинен ли пользователь
        $user_reg = $current_user->user_registered;
    } 
    $now = new DateTime ($user_reg);
    echo $now ? date_i18n('F j, H:i', strtotime($now)) : ''; 
    }


    Кому надо берите пользуйтесь. Сэкономите кучу времени
    Ответ написан
  • Как локализовать дату регистрации пользователя wordpress?

    @zeaovede Автор вопроса
    Возможно, кому-то пригодится
    function getUserRegDate() {
    $user = get_userdata(get_current_user_id());
    $user_reg = $user->get('user_registered');
    $datetime = new DateTime($user_reg);
    $formatter = new IntlDateFormatter(
        'ru_RU',
        IntlDateFormatter::LONG,
        IntlDateFormatter::LONG
    );
    $formatter->setPattern('d MMMM, yyyy');
    echo $formatter->format($datetime);
    }
    Ответ написан
  • Как сделать разные способы оплаты на разные товары в Woocommerce?

    @zeaovede Автор вопроса
    Если кому-то еще нужно будет, то с данной задачей отлично позволяет справиться плагин Woocommerce Payment Gateway per Product
    Ответ написан
    Комментировать
  • Как исключить undefined NaN?

    @zeaovede Автор вопроса
    На html все работает, переношу на wordpress и при загрузке страницы борода из ваты. Крутил эти скрипты как мог. Установил, что данная надпись появляется при подключении
    <script>
    const currency_data = {"USD":1.0664,"GBP":0.8486,"Updated":"Tue, 24 May 2022 00:00:02 +0000"}  
    </script>

    Но и без этого кода тоже нельзя. Убрав это ломается вся система подсчета.
    На данный момент не смог ничего лучше придумать, как имитировать нажатие для выбора нужной валюты по факту загрузки страницы. Лучше, чем ничего
    <script>
        setTimeout(function(){
      $('#currency-eur').trigger('click');
    }, 1000);
    </script>


    В общем как всегда. По сути-то решение на 2 минуты для того, кто в теме. А тут как всегда крутишь - вертишь по 3 часа в попытке хоть за что-то зацепиться.
    Ответ написан
    Комментировать
  • Как сделать смену текста по клику?

    @zeaovede Автор вопроса
    От себя добавлю еще такой вариант
    <a class="clickme">
    Нажми на меня!
    </a>
    <script>
    $('.clickme').click(function(){
      if (!$(this).data('status')) {
        $(this).html('Молодец! А еще раз слабо?');
        $(this).data('status', true);
      }
      else {
        $(this).html('Ну ты гигант! А может еще раз?');
        $(this).data('status', false);
      }
    });
    </script>
    Ответ написан
    Комментировать
  • Как имитировать нажатие на кнопку?

    @zeaovede Автор вопроса
    Код не сработал, т.к. было 4 кнопки на странице. Получилось решить задав идентификатор
    <input id="datepicker" class="button" type="submit" value="<?php _e('Оплатить', 'inter');?>" style="background-color: #ef8989">
        <?php echo $cancel_url;?>
    </form>
    
    <script>
        setTimeout(function(){
      $('#datepicker').trigger('click');
    }, 1000);
    </script>
    Ответ написан
  • Как осуществить редирект woocommerce с order-pay?

    @zeaovede Автор вопроса
    Кое-что нагуглил и это даже работает
    setTimeout(function(){
      $('button').trigger('click');
    }, 1000);
    Ответ написан
    Комментировать
  • Как изменить сообщение об ошибке на странице .../checkout/?

    @zeaovede Автор вопроса
    Искать пришлось долго. Мало ли кому-то пригодится
    /** Replace 'An account is already registered with your email address. Please log in.' **/
    add_filter( 'woocommerce_registration_error_email_exists', function() {
        return 'Este înregistrat deja un cont cu adresa ta de e-mail. <a href="#" class="showlogin">Te rugăm să te autentifici.</a>';
    } );
    Ответ написан
    Комментировать
  • Как изменить header.php для магазина woocommerce?

    @zeaovede
    Решение, которое было предложено тут с созданием header-shop.php в корне темы у меня не сработало. Но я нашел кое-что лучше. В корне темы находим файл page.php, и там вместо дефолтного header вывести следующий код:

    if ( class_exists( 'WooCommerce' ) && is_account_page() ) {
        get_header('shop');
    } else {
        // текущий код header.php
    }

    В моем примере нужный мне header будет выводиться на странице мой аккаунт, в любом другом месте будет выводиться дефолтный. Проверено.
    Очень важно, выводить именно в page.php, иначе, если это сделать просто через header в корне темы, то будет выводиться сразу два хеадера. В том месте где нашел ответ рекомендовано было выводить через header, но у меня сработало только через page.php. Поэтому, можете проверять.
    Ответ написан
    Комментировать
  • Как автоматически измененить статус заказа в Woocommerce?

    @zeaovede
    Рабочее решение найденное в очке интернета. Публикую для себя, чтобы не потерять, но возможно кому-то пригодится.
    add_filter( 'woocommerce_thankyou', 'update_order_status', 10, 1 );
    
    function update_order_status( $order_id ) {
      if ( !$order_id ){
        return;
      }
      $order = new WC_Order( $order_id );
      if ( 'on-hold' == $order->status) {
        $order->update_status( 'pending payment' );
      }
      return;
    }
    Ответ написан
    Комментировать
  • Как убрать поле Фамилия в ЛК Woocommerce?

    @zeaovede
    1. Через функшенс нужно сделать поля необязательными
    add_filter('woocommerce_save_account_details_required_fields', 'remove_required_fields');
    
    function remove_required_fields( $required_fields ) {
        unset($required_fields['account_first_name']);
        unset($required_fields['account_last_name']);
    
        return $required_fields;
    }

    Готово.
    2. Стилями отключить поля
    Ответ написан
    Комментировать
  • Как отключить стили и скрипты Contact Form 7 Multi-Step Forms?

    @zeaovede Автор вопроса
    Остановился пока что на таком варианте
    //отключение загрузки скриптов и стилей cf7mls
    function deregister_cf7mls_scripts() {
        if( ! is_page('apply') ){
            wp_deregister_script('cf7mls');
        }
    }
    add_action('wp_print_scripts', 'deregister_cf7mls_scripts', 100);
     
    function deregister_cf7mls_styles() {
        if( ! is_page('apply') ){
            wp_deregister_style('cf7mls');
        }
    }
    add_action('wp_print_styles', 'deregister_cf7mls_styles', 100); 
    //отключение загрузки скриптов и стилей cf7mls

    Из минусов, что скрипты отключаются не только на страницах, но и в админке, из-за чего слетает некоторый функционал, но на фронте на работу не влияет. Возможно, кто-то сможет предложить решение лучше
    Ответ написан
  • Почему при переподключении jquery может отвалиться myajax?

    @zeaovede Автор вопроса
    Проблему решил переместив jquery в футер
    wp_deregister_script( 'jquery-js' );
    wp_register_script( 'jquery-js', get_template_directory_uri() .'/js/jquery-3.6.0.min.js', false, null, true);
    wp_enqueue_script( 'jquery-js' );
    Ответ написан
    Комментировать
  • Что это за тема wordpress?

    @zeaovede
    Не буду говорить где можно взять бесплатно, найдешь сам. Есть одна интересная тема под названием betheme, которая включает 600+ шаблонов на различную тематику.
    Посмотреть можно тут. Установка шаблонов из админки. В общем, захочешь - найдешь
    Ответ написан
    1 комментарий