Intereting Posts
Сохранение массива позволяет добавить длину массива Поддомен и подкаталоги вместе в одной установке Использование meta_query на pre_get_posts для исключения определенного значения meta_key Массовый URL-адрес добавления (добавить слово в slug) Добавление определенной категории сообщений между сообщениями в цикле Как использовать / включить разбиение на страницы? Завершение цикла разбиения на страницы в PHP Ошибка настройки шаблона темы WP 3.8 Пользовательский обмен для страницы администрирования меню? Сделать сообщения нелипкими WordPress «помни меня» – как это должно работать? Как отобразить все настраиваемые поля, связанные с типом сообщения? Буферизация вывода – все между wp_head и wp_print_footer_scripts? Удалить текущую страницу_страницы из страницы с сообщениями в меню навигации WordPress Различные виджеты в боковой панели на страницах дочерних страниц?

как запустить запрос соединения с помощью post_meta

У меня есть запрос на печать sql, который работает в фильтре «posts_where» и его вроде:

SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'shop_order' AND post_date >= '2013-08-26' AND post_date < '2013-10-28' AND post_date_gmt NOT LIKE '0000%' ORDER BY wp_posts.post_date DESC 

теперь здесь я хочу добавить, где условие для значения post_meta, и как это сделать?

Все данные с данными сообщения и post_meta_data здесь:

 $metadata=get_post_meta($post->ID,'order_data'); echo "<pre>";print_r($metadata);exit; Array ( [0] => Array ( [billing_first_name] => tetst [billing_last_name] => test [billing_company] => [billing_address_1] => 1701,5120 25th St N [billing_address_2] => [billing_city] => Irvington [billing_postcode] => 07111-4501 [billing_country] => AF [billing_state] => NJ [billing_email] => a@a.com [billing_phone] => (973) 351-2932 [shipping_first_name] => tetst [shipping_last_name] => test [shipping_company] => [shipping_address_1] => 1701,5120 25th St N [shipping_address_2] => [shipping_city] => Irvington [shipping_postcode] => 07111-4501 [shipping_country] => AF [shipping_state] => NJ [shipping_method] => [shipping_service] => [payment_method] => paypal [payment_method_title] => PayPal [order_subtotal] => 10.00 [order_discount_subtotal] => 40 [order_shipping] => 30.00 [order_discount] => 0.00 [order_tax] => [order_tax_no_shipping_tax] => 0 [order_tax_divisor] => 100 [order_shipping_tax] => 0.00 [order_total] => 40.00 [order_tax_total] => 0.00 [assignto] => 7 [delivery_day_time] => 2013-09-12 01:30 ) ) 

без прохождения ключа в get_post_meta его вид выглядит так:

 $metadata=get_post_meta($post->ID); echo "<pre>";print_r($metadata);exit; [order_data] => Array ( [0] => a:38:{s:22:"order_discount_coupons";a:0:{}s:18:"billing_first_name";s:5:"tetst";s:17:"billing_last_name";s:4:"test";s:15:"billing_company";s:0:"";s:17:"billing_address_1";s:19:"1701,5120 25th St N";s:17:"billing_address_2";s:0:"";s:12:"billing_city";s:9:"Irvington";s:16:"billing_postcode";s:10:"07111-4501";s:15:"billing_country";s:2:"AF";s:13:"billing_state";s:2:"NJ";s:13:"billing_email";s:7:"a@a.com";s:13:"billing_phone";s:14:"(973) 351-2932";s:19:"shipping_first_name";s:5:"tetst";s:18:"shipping_last_name";s:4:"test";s:16:"shipping_company";s:0:"";s:18:"shipping_address_1";s:19:"1701,5120 25th St N";s:18:"shipping_address_2";s:0:"";s:13:"shipping_city";s:9:"Irvington";s:17:"shipping_postcode";s:10:"07111-4501";s:16:"shipping_country";s:2:"AF";s:14:"shipping_state";s:2:"NJ";s:15:"shipping_method";s:15:"";s:16:"shipping_service";s:15:"";s:14:"payment_method";s:6:"paypal";s:20:"payment_method_title";s:6:"PayPal";s:14:"order_subtotal";s:5:"10.00";s:23:"order_discount_subtotal";d:40;s:14:"order_shipping";s:5:"30.00";s:14:"order_discount";s:4:"0.00";s:9:"order_tax";s:74:"zero_rate:amount^0,rate^0,compound^,display^Tax,^0";s:25:"order_tax_no_shipping_tax";d:0;s:17:"order_tax_divisor";i:100;s:18:"order_shipping_tax";s:4:"0.00";s:11:"order_total";s:5:"40.00";s:39:"order_total_prices_per_tax_class_ex_tax";a:1:{s:18:"";d:10;}s:15:"order_tax_total";s:4:"0.00";s:8:"assignto";s:1:"7";s:17:"delivery_day_time";s:16:"2013-09-12 01:30";} ) - $metadata=get_post_meta($post->ID); echo "<pre>";print_r($metadata);exit; [order_data] => Array ( [0] => a:38:{s:22:"order_discount_coupons";a:0:{}s:18:"billing_first_name";s:5:"tetst";s:17:"billing_last_name";s:4:"test";s:15:"billing_company";s:0:"";s:17:"billing_address_1";s:19:"1701,5120 25th St N";s:17:"billing_address_2";s:0:"";s:12:"billing_city";s:9:"Irvington";s:16:"billing_postcode";s:10:"07111-4501";s:15:"billing_country";s:2:"AF";s:13:"billing_state";s:2:"NJ";s:13:"billing_email";s:7:"a@a.com";s:13:"billing_phone";s:14:"(973) 351-2932";s:19:"shipping_first_name";s:5:"tetst";s:18:"shipping_last_name";s:4:"test";s:16:"shipping_company";s:0:"";s:18:"shipping_address_1";s:19:"1701,5120 25th St N";s:18:"shipping_address_2";s:0:"";s:13:"shipping_city";s:9:"Irvington";s:17:"shipping_postcode";s:10:"07111-4501";s:16:"shipping_country";s:2:"AF";s:14:"shipping_state";s:2:"NJ";s:15:"shipping_method";s:15:"";s:16:"shipping_service";s:15:"";s:14:"payment_method";s:6:"paypal";s:20:"payment_method_title";s:6:"PayPal";s:14:"order_subtotal";s:5:"10.00";s:23:"order_discount_subtotal";d:40;s:14:"order_shipping";s:5:"30.00";s:14:"order_discount";s:4:"0.00";s:9:"order_tax";s:74:"zero_rate:amount^0,rate^0,compound^,display^Tax,^0";s:25:"order_tax_no_shipping_tax";d:0;s:17:"order_tax_divisor";i:100;s:18:"order_shipping_tax";s:4:"0.00";s:11:"order_total";s:5:"40.00";s:39:"order_total_prices_per_tax_class_ex_tax";a:1:{s:18:"";d:10;}s:15:"order_tax_total";s:4:"0.00";s:8:"assignto";s:1:"7";s:17:"delivery_day_time";s:16:"2013-09-12 01:30";} ) - $metadata=get_post_meta($post->ID); echo "<pre>";print_r($metadata);exit; [order_data] => Array ( [0] => a:38:{s:22:"order_discount_coupons";a:0:{}s:18:"billing_first_name";s:5:"tetst";s:17:"billing_last_name";s:4:"test";s:15:"billing_company";s:0:"";s:17:"billing_address_1";s:19:"1701,5120 25th St N";s:17:"billing_address_2";s:0:"";s:12:"billing_city";s:9:"Irvington";s:16:"billing_postcode";s:10:"07111-4501";s:15:"billing_country";s:2:"AF";s:13:"billing_state";s:2:"NJ";s:13:"billing_email";s:7:"a@a.com";s:13:"billing_phone";s:14:"(973) 351-2932";s:19:"shipping_first_name";s:5:"tetst";s:18:"shipping_last_name";s:4:"test";s:16:"shipping_company";s:0:"";s:18:"shipping_address_1";s:19:"1701,5120 25th St N";s:18:"shipping_address_2";s:0:"";s:13:"shipping_city";s:9:"Irvington";s:17:"shipping_postcode";s:10:"07111-4501";s:16:"shipping_country";s:2:"AF";s:14:"shipping_state";s:2:"NJ";s:15:"shipping_method";s:15:"";s:16:"shipping_service";s:15:"";s:14:"payment_method";s:6:"paypal";s:20:"payment_method_title";s:6:"PayPal";s:14:"order_subtotal";s:5:"10.00";s:23:"order_discount_subtotal";d:40;s:14:"order_shipping";s:5:"30.00";s:14:"order_discount";s:4:"0.00";s:9:"order_tax";s:74:"zero_rate:amount^0,rate^0,compound^,display^Tax,^0";s:25:"order_tax_no_shipping_tax";d:0;s:17:"order_tax_divisor";i:100;s:18:"order_shipping_tax";s:4:"0.00";s:11:"order_total";s:5:"40.00";s:39:"order_total_prices_per_tax_class_ex_tax";a:1:{s:18:"";d:10;}s:15:"order_tax_total";s:4:"0.00";s:8:"assignto";s:1:"7";s:17:"delivery_day_time";s:16:"2013-09-12 01:30";} ) 

теперь здесь я хочу применить, где условие с полем «delivery_day_time»,

как это сделать?

ОБНОВЛЕНО

теперь я получаю метаданные как:

 [order_assign_data] => Array ( [0] => 7 ) [order_assign_date] => Array ( [0] => 2013-09-28 02:30 ) 

теперь как применить условие?

Solutions Collecting From Web of "как запустить запрос соединения с помощью post_meta"

Майло сказал вам ответ. Вам необходимо хранить данные как отдельные данные в базе данных, а не как сериализованные массивы. MySQL не может изначально проанализировать сериализованный массив, хотя я видел очень сложный SQL, который будет. Тем не менее, этот код не будет полезен на производственном сервере. Это слишком сложно и будет слишком медленным. Так…

… есть ли какая-либо возможность в данном случае?

… если вы имеете в виду «Могу ли я сделать эту работу с сериализованными данными, которые у меня есть?» то «нет», не совсем. Вы должны изменить способ хранения данных в базе данных. Если вы уже это сделали – возможно, это то, что означает редактирование, я не могу сказать … тогда вам нужно присоединиться.

 SELECT wp_posts.* FROM wp_posts LEFT JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID WHERE 1=1 AND wp_posts.post_type = 'shop_order' AND post_date >= '2013-08-26' AND post_date < '2013-10-28' AND post_date_gmt NOT LIKE '0000%' AND wp_postmeta.meta_key = 'whatever' AND wp_postmeta.meta_value = 'somevalue' ORDER BY wp_posts.post_date DESC 

Логика и SQL для соединений могут усложниться, поэтому вам может понадобиться намного больше кода.

И вам, вероятно, следует рассмотреть использование WP_Query с аргументом meta_query вместо вашего ручного SQL.

По крайней мере, используйте $wpdb->posts и $wpdb->postmeta вместо имен жестко закодированных таблиц. То, что у вас есть, не переносится.