У меня есть сайт участника, на котором пользователи должны платить, чтобы подписаться. Когда пользователь подписывается, его роль становится «членом» и теперь может публиковать в пользовательский тип сообщения, называемый «user-profile»Изменить статус сообщений в ожидании на основании роли пользователя
Что я хочу сделать, это изменить статус всех опубликованных сообщений в ожидании этого типа сообщения, если, например, роль пользователя изменена на «истекли»
Я попытался это, но, кажется, не имеют никакого эффекта
function auto_expire_posts(){
global $wpdb, $wp_roles;
//get all post ids of published posts.
$post_ids = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'publish' ");
foreach($post_ids as $id){
$postid = $id->ID;
if ($_GET['role'] == "expired")
{
$profile_post = array();
$profile_post['ID'] = $postid;
$profile_post['post_status'] = 'pending';
// Update the post into the database
wp_update_post($profile_post);
}
}
}
add_action('set_user_role', 'auto_expire_posts');
Вы также должны выбрать столбец 'post_status' в запросе. –
плагин членства wordpress –
Я использую гравитационные формы и управляю подписками вручную, я хочу, если я изменил роль вручную, чтобы получить результат –