Я пытался найти решение для следующего сценария. У меня есть настраиваемый тип сообщения - job_listing
с использованием плагина Job Job Manager.Пользовательский тип почтового типа - изменение роли пользователя
Я пытаюсь добиться того, чтобы изменить роль пользователя по умолчанию в зависимости от количества сообщений job_listing
. Таким образом, по умолчанию роль пользователя составляет 'subscriber'
, но всякий раз, когда пользователь отправляет список заданий, эта роль пользователя должна автоматически меняться на 'employer'
.
Я собрал фрагмент кода, собранный из различных материалов, основанный на этом. Но я все еще не могу заставить эту работу работать.
Вот мой код в functions.php:
add_action ('publish_post', 'update_roles');
function update_roles ($post_type = 'job_listing', $post_status = 'publish') {
global $wpdb;
$author = wp_get_current_user();
$query = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $author->ID AND post_type = '$post_type' AND post_status = '$post_status'";
$count = $wpdb->get_var($query);
if($count > 0 && current_user_can('subscriber'))
{
// Remove role
$author->remove_role('subscriber');
// Add role
$author->add_role('employer');
}
}
Что это такое, что я делаю неправильно там?
Привет, спасибо за усилия, пытался ваше решение, но нет, до сих пор, кажется, не делать ничего .. –
@JoeBloggs я просто обновил код, чтобы предоставить идентификатор автора 'wp_update_user 'попробуйте это или нам нужно изменить действие. –
большое спасибо. Я получаю синтаксическую ошибку в этой строке вашего кода: 'wp_update_user ('ID' => $ _POST ['listing_author'], array ('role' => array ('employer')));' и просто может Не поймите, что там может быть. Можете ли вы дважды проверить? –