• Почему не отправляется письмо на почту?

    @easycode
    не боюсь задавать глупые вопросы ))
    Может не мучится и сразу заюзать какой-нибудь phpMailer или swiftMailer с отправкой письма через реальный почтовый сервер по протоколу SMTP ? - так и меньше проблем с попаданием письма в СПАМ будет!

    p.s.: код отправки письма лучше вынести в отдельную функцию или метод класса ( не знаю Вашего контекста ) - а то сразу глаза режет:
    if (mail(strtolower($data["reg_mail"]), "Подтвердите Email на PLUMBEAR", $message, $headers)) {
                include Base::PathTPL("header");
          include Base::PathTPL("auth/email");
          include Base::PathTPL("footer");
            }

    жесткий замес )))
    Ответ написан
    Комментировать
  • Как добавить большое количество изображений товаров в WooCommerce?

    @easycode
    не боюсь задавать глупые вопросы ))
    1) я бы написал свой функционал импорта (+ чтобы можно было контролировать расходование памяти - загрузка небольшими частями)
    2) если возможно ситуация что у разных товаров могут быть одинаковые изображения - то хорошо бы организовать перед загрузкой что-то типа:
    public function get_attachment_by_hash($hash_file)
    {
    	if ( !$hash_file ) return 0;
    	$attachments = get_posts(array(
    		'numberposts' => 1,
    	    'post_type'   => 'attachment',
    	    'post_status' => 'inherit',
    	    'meta_query'  => array(
    	        array(
    	            'key'     => 'hash_file',
    	            'value'   => $hash_file
    	        )
    	    )
    	));
    	if (!is_array($attachments) or !count($attachments)) return 0;
    	if ($attachments[0]->ID)  
    		return $attachments[0]->ID;
    	else 
    		return 0;
    	//update_post_meta( $attachment_id, 'photo_title', $metadata['image_meta']['title'] );
    }
    
    
    $tmp_file = download_url( $_first_pic, 600 );
    
    if ( is_wp_error( $tmp_file ) ) {
    	$this->error($tmp_file->get_error_messages());
    	return '';
    } else {
    	$hash_file = hash_file('md5', $tmp_file);
    	$this->log("md5 hash file: $hash_file");			
    	$this->log("download image: $_first_pic");
    }
    
    $att_id = $this->get_attachment_by_hash($hash_file);
    
    if ($att_id) {
      //find attachment duplicate ID: $att_id
    } else {
      $att_id = media_handle_sideload( array(
        'name' => preg_replace('/\?.*/', '', basename($_first_pic)),
        'tmp_name' => $tmp_file,
      ), $this->product_id, $title);
    
      if ( is_wp_error( $att_id ) ) {
        $this->error($att_id->get_error_messages());
      } else {
        update_post_meta($att_id, 'hash_file', $hash_file);	
        set_post_thumbnail($this->product_id, $att_id);
      }
    }


    в целом я как-то запихивал в БД WooCommerc'а из CSV около 20 тыс. товаров - никаких подвисаний и проблем не было в общем-то )
    Ответ написан
    Комментировать
  • Как получить следующий и предыдущий пост опираясь на значение поле ACF?

    @easycode
    не боюсь задавать глупые вопросы ))
    посмотрите здесь: https://wordpress.stackexchange.com/questions/1394... - похоже это то что вам нужно!

    в $next_posts - можно запихнуть все ID'шники постов которые больше > $current_post_id

    $_next_post = new WP_Query( [
      'posts_per_page' => 1,
      'post_type'      => 'projects',
      'post_status'    => 'publish',
      'meta_query'     => [
        'type' => [
          'key'       => 'type',
          'value' => [ 'archive', 'commin_soon' ],
        ],
      ],
      'post__not_in'   => $next_posts,
      'orderby' => 'ID',
      'order' => 'ASC',
    ] );


    костыльно конечно же, но если по другому то нужно свой SQL-запрос писать, ведь не понятно как добавить в WP_Query дополнительное условие WHERE `ID` > $current_post_id

    UPD:
    $next_posts - некоторые получают так:
    $next_posts = range(1, 555);
    555 - от балды написано, можно конечно посчитать сколько у вас всего постов с 'post_type' = 'projects', и 'post_status' = 'publish' и у которых WHERE `ID` > $current_post_id ))
    Ответ написан
  • Как сделать товары без изображений в конец списка?

    @easycode
    не боюсь задавать глупые вопросы ))
    В get_posts юзать fields => ids, чтобы на выходе был не огромный массив объектов (постов), а простой массив id-шников - всё равно кроме id больше ничего не нужно будет в цикле - экономия памяти!
    заюзать WP-CLI для того чтобы всю эту обработку реордеинга запустить первый раз

    ну и далее можно навесить hook например на save_post, который будет проверять загружен ли thumbnail для товара и если да - то реордерить позицию товара

    можно еще разобраться в том где и как в таблицах WordPress'а хранится связка между постом (товаром) и главным его изображением (thumbnail) и соотв. через хук для фронт-части сайта изменить главный query-запрос с учетом этой сортировки

    я вот менял сортировку кастомной таксономии в админке - по похожему принципу:

    add_filter( 'terms_clauses', function ( $pieces, $taxonomies, $args ) {
        global $pagenow, $wpdb;
        if ( is_admin() && $pagenow == 'edit-tags.php' && $taxonomies[0] == 'program_session' ) {
            $pieces['join']  .= ' INNER JOIN ' . $wpdb->termmeta . ' AS tm ON t.term_id = tm.term_id ';
            $pieces['where'] .= ' AND tm.meta_key = "program_session_start"';
            $pieces['orderby']  = ' ORDER BY tm.meta_value ';
        }
        return $pieces;
    }, 10, 3 );


    у вас другой случай - но подход возможно похожий https://wp-kama.ru/hook/posts_clauses

    UPD: по-моему вот ответ на ваш вопрос: https://stackoverflow.com/questions/15956135/how-c...
    Ответ написан
    Комментировать
  • Как транслировать посты из Telegram в Wordpress?

    @easycode
    не боюсь задавать глупые вопросы ))
    Комментировать
  • Как передать содержимое в переменную PHP?

    @easycode
    не боюсь задавать глупые вопросы ))
    ну типа:
    <div id="list"></div>
    
    <script type="text/javascript">
      jQuery(document).ready(function($) {
        jQuery.post('index.php', 'list': jQuery('#list').html(), function(data, textStatus, xhr) {
          /*optional stuff to do after success */
        });
      });
    </script>


    на стороне сервера:
    <?php
    #index.php
    echo $_POST['list']; // содержимое div-а с id = list
    Ответ написан
    Комментировать
  • Не отображается значок нового заказа в Woocommerce?

    @easycode
    не боюсь задавать глупые вопросы ))
    А javascript-ошибок в панели администрирования случаем нет? Посмотрите в браузере - также откройте в инспекторе панельку где запросы - увидите как там Ajax-запросы срабатывают...
    Ответ написан
    Комментировать
  • Почему не работают кнопки лайков?

    @easycode
    не боюсь задавать глупые вопросы ))
    как вариант начать с исправления javascript-ошибок на вашем сайте: 61de9b8d99222526615409.png
    Ответ написан
  • Как добавить в корзину Woocommerce товар через API?

    @easycode
    не боюсь задавать глупые вопросы ))
    Самым правильным наверное будет использовать REST API - посмотрите здесь: https://newbedev.com/how-to-insert-product-in-cart...
    Ответ написан
    Комментировать
  • С помощью какого плагина можно сделать подписку на две разные рассылки?

    @easycode
    не боюсь задавать глупые вопросы ))
    это называется листы подписки, всё зависит от того какой плагин вы используете
    не знаю есть ли у этого популярного плагина такие возможности - https://ru.wordpress.org/plugins/newsletter/ - нужно поставить и посмотреть
    точно есть у https://wpnull.org/wpplugins/mymail-a (только там надо не забыть добавить выбор листа подписки на форму подписки)
    Ответ написан
    Комментировать
  • Как сделать редиррект в WP?

    @easycode
    не боюсь задавать глупые вопросы ))
    Если не хотите ковыряться с .htaccess и разбираться с синтаксисом правил редиректа, можете попробовать установить вот этот плагин: https://ru.wordpress.org/plugins/redirection/ и добавить туда одно единственное правило:
    61de91e26628b766395061.png
    Ответ написан
    6 комментариев
  • Как добавить xml файл в Wordpress?

    @easycode
    не боюсь задавать глупые вопросы ))
    я хочу импортировать демо версию темы в Wordpress.

    наверное, имеется в виду что вы хотите импортировать демо-контент?

    т.е. вы ищите плагин, который сможет создать xml-файл импорта демо-контента? при этом как я понимаю разработчики этой темы не дают такой xml-файл? но у вас есть установленная версия с демо-контентом?

    Инструменты / Экспорт -> Всё содержимое
    экспорт настроек темы: https://wordpress.org/plugins/customizer-export-import/
    экспорт настроек виджетов: https://wordpress.org/plugins/widget-importer-exporter/

    Если же вы хотите создать файл импорта демо-контента по демо-версии сайта доступного в Интернете - то вряд ли вы найдете такое готовое решение, потому что настройки виджетов, меню и прочее - таким образом не собрать, только страницы и записи можно каким-нибудь граббером собрать - идея интересная конечно, но слишком гемморойная )))
    Ответ написан
    Комментировать
  • RATS NoPtr в mxtoolbox и RCVD_IN_SORBS_WEB от SpamAssassin - как правильно настроить почтовый сервер?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    1. RATS NoPtr - это не о том что у Вас PTR записи нет. Это о том что IP вашего почтового сервера принадлежит пулу адресов с которых хостер владеющий им допускает отправку почты без PTR записи. В целом - вид блэклиста.

    это не потому что на нашей VPS-ке несколько доменов (сайтов) расположено?
    а то хостер как раз писал что-то типа:
    для каждого домена должен быть свой IP , и соответствующий PTR на него , чтобы не было таких ошибок

    так и есть?

    я естественно проверял ip-адрес почтового сервер по блэклистам - он чист, нигде не числится!

    По п.1 - теребить хостера чтобы он связывался с блэклистом и убеждал его в своей пушистости или менять IP на чистый из другого пула.

    так, ip-адрес почтового сервера (домена/сайта) чистый, не находится в блэклисте!

    По п.2 - настроить почтовый сервер чтобы он не указывал IP вашего ПК с которого клиентом почту отправляете в заголовках.

    специалисты техподдержки не знают как это сделать, мы что-то нашли по этой теме как нам кажется здесь: https://serverfault.com/questions/845504/spamassas... - они внесли настройки - но это не помогло!
    Ответ написан
  • Как с хлебных крошек убрать category archives ???

    @easycode
    не боюсь задавать глупые вопросы ))
    Какой-нибудь SEO плагин установлен? Например Yoast SEO - попробуйте в нём отключить /category/
    61dc8d4f7c527718606705.png
    Ответ написан
  • Как сделать такой же код в php?

    @easycode
    не боюсь задавать глупые вопросы ))
    На скорую руку - не проверял корректность - но примерно так:

    <?php 
    
    function Encrypt($theText) {
      $output = '';
      $Temp = [];
      $Temp2 = [];
      $TextSize = strlen($theText);
      for ($i = 0; i < $TextSize; $i++) {
        $rnd = round(mt_rand * 122) + 20;
        $Temp[$i] = ord($theText{$i}) + $rnd;
        $Temp2[$i] = $rnd;
      }
      for ($i = 0; $i < $TextSize; $i++) {
        $output += chr($Temp[$i]) . chr($Temp2[$i]);
      }
      return output;
    }
    
    function unEncrypt($theText) {
      $output = '';
      $Temp = [];
      $Temp2 = [];
      $TextSize = strlen($theText);
      for ($i = 0; $i < $TextSize; $i++) {
        $Temp[$i] = ord($theText{$i});
        $next = $i + 1;
        $Temp2[$i] = ord($theText{$next});
      }
      for ($i = 0; $i < $TextSize; $i=$i+2) {
        $output .= chr($Temp[$i] - $Temp2[$i]);
      }
      return $output;
    }
    Ответ написан
  • Как изменить url?

    @easycode
    не боюсь задавать глупые вопросы ))
    наверное так:
    61dc8942657dd727413284.png

    хотя не понятно - как у вас после blog идёт category - по идее должно быть наоборот...
    888poker - это слаг записи или слаг таксономии (рубрики)?
    Ответ написан
  • Как узнать было ли такое в массиве?

    @easycode
    не боюсь задавать глупые вопросы ))
    1) перебор элементов массива с сравнением:
    foreach ($json['result'] as $_item) {
     if ($_item['received']['from'] == 'USERNAME1' and $_item['received']['AMOUNT'] == '12345678')


    2) вариант за которой могут расстрелять )))
    if ( preg_match('|"from":"USERNAME1",\s"AMOUNT":12345678,|is', $json, $match) )
    Ответ написан
    Комментировать
  • Как добавить фотографию в рубрику?

    @easycode
    не боюсь задавать глупые вопросы ))
    есть два подхода:
    1) найти и заюзать готовый плагин - ну типа: https://ru.wordpress.org/plugins/categories-images/ или тут поискать: https://ru.wordpress.org/plugins/tags/category-image/ (методом перебора)
    2) или если готовы осилить возможности плагина ACF и немного пописать PHP-кода

    Ах да, есть еще один неочевидный вариант - если вам всё равно как загружать изображения - и готовы вставлять их в описание рубрики ( таксономии ) - то можно установить вот этот плагин https://ru.wordpress.org/plugins/visual-term-descr... и тогда в описании рубрики появится классический визуальный редактор контента с кнопкой вставки медиа - что даст возможность вставлять любой контент в том числе сколько угодно изображений
    Ответ написан
    9 комментариев
  • Сортировка терминов таксономии по значению мета-поля в WordPress?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    Не кошерное решение:

    add_filter( 'get_terms_args', function ( $args, $taxonomies ) {
    
      global $pagenow;
    
      if ( is_admin() && $pagenow == 'edit-tags.php' && $taxonomies[0] == 'program_session' ) {
        $args['menu_order'] = false;
        $args['ignore_term_order'] = false;
        $args['meta_query'] = [
          'conference' => [
            'key'       => 'conference_id',
            'value'     => _get_active_conf_id(),
            'compare'   => 'LIKE'
          ],
        ];
      }
    
      return $args;
    
    }, 10, 2 );
    
    add_filter( 'terms_clauses', function ( $pieces, $taxonomies, $args ) {
        global $pagenow, $wpdb;
        if ( is_admin() && $pagenow == 'edit-tags.php' && $taxonomies[0] == 'program_session' ) {
            $pieces['join']  .= ' INNER JOIN ' . $wpdb->termmeta . ' AS tm ON t.term_id = tm.term_id ';
            $pieces['where'] .= ' AND tm.meta_key = "program_session_start"';
            $pieces['orderby']  = ' ORDER BY tm.meta_value ';
        }
        return $pieces;
    }, 10, 3 );
    Ответ написан
    Комментировать
  • Вызов команд Телеграм-бота при сканировании QR-кодов?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    Наверное единственный работающий вариант это https://core.telegram.org/bots#deep-linking
    Ответ написан
    Комментировать