Intereting Posts
Оплатить перед публикацией (вставить вкладку frontend) Сделайте мой блог WordPress помните мой логин "навсегда" Создание экземпляра wp_editor с пользовательскими кнопками tinyMCE mySQL количество записей в каждой категории и подкатегории Создание нескольких файлов загрузки Metabox в WordPress Как отобразить категорию из определенного типа post-type Текущие комментарии пользователя + заголовок сообщения разбиение на страницы для пользовательского запроса Объедините две таксономии в иерархическом дереве Перенаправление на пользовательский URL после регистрации со страницы с регистрационной формой Когда используется календарь событий Tribe, запрос для определенной категории событий ничего не возвращает Ссылки WordPress не работают после миграции Как определить максимальную ширину для содержимого в редакторе сообщений на основе шаблона страницы? Удалить Custom Post Type Slug и добавить пользовательскую таксономию в структуру Permalink? Показать / скрыть Div для маски входа

Цена продукта «0» после добавления в корзину программно

Я добавляю некоторые продукты в корзину программно. Я использую части кода из классов WooCommerce, но после добавления в корзину цена «0», но общая стоимость корзины в порядке, поэтому продукт не является бесплатным. См. Прикрепленное изображение:

Итоговые итоги

Вы можете видеть, что цена продукта была рассчитана в Subtotal , но не отображена в списке продуктов. Если вы обновите страницу – это станет нормальным. Так бывает, только когда он добавляет, после обновления – все в порядке.

Код:

  $adding_to_cart = wc_get_product( $product_id ); if ( ! $adding_to_cart ) { return; } $variations = array(); $quantity = $boxes; $variations['attribute_pa_packaging'] = ICL_LANGUAGE_CODE == "en" ? "box" : "kasten"; $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations ); if ( $passed_validation && $woocommerce->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) !== false ) { //wc_add_to_cart_message( $product_id ); return true; } 

Неизвестно в строке 0 'Ошибка

Неизвестно: не удается использовать буферизацию вывода в обработчиках отображения буферизации вывода в Unknown в строке 0 'Ошибка

Использование темы 2011. Ошибка доступа к панели управления wp-admin . У вас отключены плагины один за другим, и проблема, похоже, связана с Jetpack! Кто-нибудь имел такой же опыт?

Отображение страницы «0», когда нет представления

Итак, у меня есть следующий код для показа просмотра страницы:

<div class="mypageview"><?php echo get_post_meta( $post->ID, 'pageview', true );?>page view</div> 

Например, если есть какое-либо представление, оно будет отображаться как «2-страничное представление».

Когда нет представления, он просто отображается как «просмотр страницы»,

Как я могу сделать это так, чтобы, если нет представления, он показывает «0» (0 Page View)

Благодаря!

Вы можете немного оптимизировать свой код и локализовать его. Я бы добавил результаты от get_post_meta() к переменной, а затем проверил возвращенный результат на действие

Вы можете попробовать что-то вроде этого

 <div class="mypageview"> <?php $views = get_post_meta( $post->ID, 'pageview', true ); if ( !$views ) _e( '0 post views' ); if ( $views == 1 ) _e( '1 post view' ); if ( $views > 1 ) printf(__( ' %s post views' ), $views); ?> </div> 

РЕДАКТИРОВАТЬ

По запросу в комментариях вы можете переписать код на следующий ( я предполагаю, что $output определен ранее перед этим кодом )

 $output .= '<div class="mypageview">'; $views = get_post_meta( $post->ID, 'pageview', true ); if ( !$views ) $output .= __( '0 post views' ); if ( $views == 1 ) $output .= __( '1 post view' ); if ( $views > 1 ) $output .= sprintf(__( ' %s post views' ), $views); $output .= '</div>'; 

Неопределенное смещение: 0

Вот моя функция PHP

function getUserIDandPush($ul){ global $table_prefix; // Prefix for Database table global $user_login; global $wpdb; // WordPress WPDB database method $dt = $table_prefix; //Tables Prefix $as = $wpdb->get_results('SELECT * FROM '.$dt.'users WHERE user_login = "'.$ul.'" '); $usID = $as[0]->ID; wp_set_current_user($usID, $ul); wp_set_auth_cookie($usID); do_action('wp_login', $ul); } 

Проблема в том, что $ as is [0] -> ID возвращает Undefined offset: 0 не уверен, почему это возвращает это. Функция работает и делает то, что я хочу … Но почему ошибка. Ищу какое-то образование.

Починил это.

 function getUserIDandPush($ul){ global $table_prefix; // Prefix for Database table global $user_login; global $wpdb; // WordPress WPDB database method $dt = $table_prefix; //Tables Prefix if (!is_user_logged_in() && isset($_SERVER['LOGON_USER'])) { $as = $wpdb->get_results('SELECT * FROM '.$dt.'users WHERE user_login = "'.$ul.'" '); $usID = $as[0]->ID; wp_set_current_user($usID, $ul); wp_set_auth_cookie($usID); do_action('wp_login', $ul); } } 

Поиск результатов '0' возвращает результаты

У меня есть CPT, созданный с использованием специальной таксономии. Недавно я заметил, что если я ищу 0 (ноль), как в интерфейсе, так и в интерфейсе, он дает мне результаты. Ни одна из этих результирующих должностей не имеет 0 в названии, а также в содержании. В любом случае, я не модифицировал цикл, это простой шаблон поиска. Это заставляет меня задаться вопросом о двух вещах:

  1. Что делает WP поиск по умолчанию?
  2. Есть ли способ остановить его от поиска 0 ?

Есть идеи?

Обновить:

Из комментариев ниже, я обновляю свое требование:

Есть ли способ поиска сообщений, которые содержат 0 в заголовке или содержимом, когда 0 вводится в качестве ключа поиска?

Учитывая комментарий @Mayeenul Islam:

Я только что тестировал пустую тему с фиктивными данными, поиск с 0 (ноль) запускал пустой поиск – это означает все:

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type IN ('post', 'page', 'attachment') AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 0, 10

и тот факт, что wp-includes/query.php содержит

 if ( ! empty( $q['s'] ) ) { $search = $this->parse_search( $q ); } 

, мы можем видеть, что !empty($q['s']) , где $q['s'] == 0 (or "0") вернет FALSE . Это означает, что в поисковом запросе не будет части LIKE , когда $q['s'] == 0 и он возвращает «все» сообщения, поскольку ничто не ограничивает запрос конкретными условиями, которые должны находиться внутри части LIKE .

Это подтверждается empty() функцией:

Следующие вещи считаются пустыми:

  • 0 (0 как целое число)
  • «0» (0 в виде строки)

Из-за этого мы не можем фильтровать / обновлять, «0», чтобы передать условную логику if-empty. Я предлагаю обновить запрос в случае, если пользователи будут искать «0».

Вот краткое определение того, как разрешить пользователям искать «0».

 add_filter("posts_where", "search_hotfix", 10, 1); function search_hotfix($where_clause){ if(get_query_var('s') == 0){ $where_clause .= " AND (((wp_posts.post_title LIKE '%0%') OR (wp_posts.post_content LIKE '%0%'))) "; } return $where_clause; } 

ОБНОВЛЕНИЕ :

И вот быстрый пример, как остановить поиск WP для «0». Этот код заставит WP_Query не давать никаких результатов.

 add_action('pre_get_posts', 'search_hotfix_reset_q'); function search_hotfix_reset_q($query){ if ( get_query_var('s') == 0) { $query->query_vars['post__in'] = array(0); } } 

эта проблема выглядит так, чтобы ее можно было решить, добавив пробел после поискового запроса, чтобы empty($request["s"]) была ложной

это можно сделать с помощью этого кода в плагине, например:

 add_filter("request", function ($request) { if ( isset($request["s"]) && empty($request["s"]) ) { $request["s"] .= " "; } return $request; });