Я хочу ограничить каждого пользователя регистрировать только один заказ в день.
Для этого мне нужно проверить заказ каждого пользователя, прежде чем регистрировать, есть ли у этого пользователя какой-либо заказ «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);
}