попробуйте посчитать заказ этого онлайн-пользователя - PullRequest
1 голос
/ 11 ноября 2019

Я хочу ограничить каждого пользователя регистрировать только один заказ в день.

Для этого мне нужно проверить заказ каждого пользователя, прежде чем регистрировать, есть ли у этого пользователя какой-либо заказ «wp-processing» или нет?

Я написал ниже запрос MySQL в PHP, но он не работает.

Я напечатал значение '$ sql_count_from_status' и попробовал его в phpmyadmin, вкладка SQL, чтобы найти ошибку. Значение переменной было:

SELECT count(ID) FROM wp_posts p LEFT JOIN wp_postmeta m ON p.ID=m.post_id WHERE p.post_status LIKE 'wc-processing' AND p.post_type LIKE 'shop_order' AND m.meta_key LIKE '_customer_user' AND m.meta_value LIKE '100577';

и показало мне ноль в phpmyadmin в качестве результата. Теперь я знаю, что у запроса есть проблема, потому что у меня был «порядок обработки» для пользователя 100577.

function get_orders_count_from_status( $status , $this_user_id){
global $wpdb;

// We add 'wc-' prefix when is missing from order staus
$status = 'wc-' . str_replace('wc-', '', $status);

$sql_count_from_status = "
SELECT count(ID)  FROM {$wpdb->prefix}posts p
LEFT JOIN {$wpdb->prefix}postmeta m
ON p.ID=m.post_id
WHERE p.post_status LIKE '$status' AND p.post_type LIKE 'shop_order'
AND m.meta_key LIKE '_customer_user' 
AND m.meta_value LIKE '".$this_user_id."';";

return $wpdb->get_var($sql_count_from_status);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...