• Как сделать разные способы оплаты на разные товары в 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 комментарий