подскажите какой хук публикации и получиться ли так проверить на лимит?
add_action( 'add_post_rcl', 'post_limit', 99, 1 ); - правильный ли хук?
function post_limit() {
$wpdb->get_results(SELECT COUNT(ID)
FROM `wp_posts`
WHERE wp_posts.post_type='post'
AND wp_posts.post_status='publish'
AND wp_posts.post_date = CURDATE()
AND wp_posts.post_autor = $user_id);
if ( $wpdb > '5' ) {
return false;
}
}
только почему-то публикует не смотря на проверку, подскажите , пожалуйста ,что не учел ,вывел каунт print_r($count); показало 25
add_action( 'transition_post_status', 'post_limit', 10, 3 );
function post_limit( $new_status, $old_status, $post ) {
global $wpdb;
$count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(wp_posts.ID)
FROM `wp_posts`
WHERE wp_posts.post_type='post'
AND wp_posts.post_status='publish'
AND wp_posts.post_date between CURDATE()
AND CURDATE()+1
AND wp_posts.post_author=".$post->post_author));
if ( $count > 5 ) {
return false;
}
}
форма скрылась ,но сообщение не вывелось ,что не дописал ?
function filter_function_name( $data ) {
if(!isset($data['postform'])) return $data;
$data['postform']['content'][0]['callback'] = 'new_function_postform';
return $data;
}
add_filter( 'rcl_tabs', 'filter_function_name' );
function new_function_postform($user_lk){
echo "лимит 5 постов в сутки";
}
вот массив,но не зависимо от того что , что-то то меняю вкладка остаеться
print_r($data['prime-forum']);
Array
(
[id] => prime-forum
[supports] => Array
(
[0] => ajax
)
[name] => Форум
[public] => 0
[icon] => fa-sitemap
[output] => menu
[content] => Array
(
[0] => Array
(
[id] => my-topics
[icon] => fa-folder
[name] => Начатые темы
[callback] => Array
(
[name] => pfm_get_user_topics_list
)
)
[1] => Array
(
[id] => my-posts
[icon] => fa-folder
[name] => Сообщения в чужих темах
[callback] => Array
(
[name] => pfm_user_posts_other_topics
)
)
)
[hidden] => 0
[order] => 4
)
или такой масив print_r($data['postform']);
Array
(
[id] => postform
[name] => Публикация
[public] => 0
[icon] => fa-pencil
[content] => Array
(
[0] => Array
(
[callback] => new_function_postform
[id] => postform
[name] => Публикация
[icon] => fa-pencil
)
)
[hidden] => 0
[order] => 6
)
Может лучше так попробовать
add_action( 'rcl_preview_post', 'my_function', 10 );
function my_function( $postdata ) {
if($postdata['post_type']!= 'post') return ;
global $wpdb;
//здесь получаете сколько опубликовал в сутки
if ( $count >= 5 ) {
wp_send_json(['error' => 'лимит 5 постов в сутки!']);
}
}
bocman.sev@gmail.com сказал(а)
[callback] => new_function_postform
- ну это название вашей функции? А в ней что?
василий сказал(а)
Может лучше так попробовать
ну... значит пользователь пишет полчаса, час - а потом бац и ему не дают публиковать? Эти сообщения надо выводить до того как кто-то захочет написать. т.е. вариант через подмену коллбека функции - самый честный для пользователя
ну... значит пользователь пишет полчаса, час - а потом бац и ему не дают публиковать? Эти сообщения надо выводить до того как кто-то захочет написать. т.е. вариант через подмену коллбека функции - самый честный для пользователя
Тоже верно. Вы правы. Лучше сразу спрятать форму.
так сделал без подсоединения к хуку публикации и отработало правильно
function filter_function_name( $data ) {
if(!isset($data['postform'])) return $data;
global $wpdb;
global $user_LK;
$count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(wp_posts.ID) FROM `wp_posts` WHERE wp_posts.post_type='post' AND wp_posts.post_status='publish' AND wp_posts.post_date between CURDATE() AND CURDATE()+1 AND wp_posts.post_author=".$user_LK));
if ( $count > 5 ) {
$data['postform']['content'][0]['callback']['name'] = new_function_postform;}
return $data;
}
add_filter( 'rcl_tabs', 'filter_function_name' );
function new_function_postform($user_lk){
return '<h3>лимит 5 постов в сутки</h3>';
}