Назначение пользовательской роли пользователя при активации подписки WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Назначение пользовательской роли пользователя при активации подписки WooCommerce

Сообщение Anonymous »

В WooCommerce мне нужно автоматически назначить пользователям специальную роль («Активная производственная компания») после того, как их подписка станет активной. Назначение роли позволит только активным подписчикам получать доступ и отправлять ограниченную форму на сайте, созданную с помощью WP Job Manager.
Я добавил продукт подписки WooCommerce (ежемесячную и годовую) для пользователи могут совершить покупку, что дает им специальную роль после успешной оплаты.
Вот код, который я сейчас использую:

Код: Выделить всё

add_action( 'woocommerce_subscription_status_updated', 'wc_subscribe_assign_role', 10, 3 );

function wc_subscribe_assign_role( $subscription, $new_status, $old_status ) {
if ( $new_status === 'active' ) {
$user_id = $subscription->get_user_id(); // Get the user ID of the subscriber
$user = new WP_User( $user_id );

// Assign the "Active Production Company" role upon subscription activation
$user->set_role( 'active_production_company' );
}
}
Я не уверен, правильно ли используется $subscription для получения идентификатора пользователя или woocommerce_subscription_status_updated является лучшим перехватчиком для этой цели.
p>
Я использовал хук woocommerce_subscription_status_updated, надеясь, что он инициирует назначение роли при изменении статуса подписки на «активный». Я ожидал, что это автоматически назначит пользователям роль «Активная производственная компания», что позволит им получить доступ к ограниченной форме.
После тестирования с тестовым заказом ожидаемая роль не была применена. Я проверил документацию по объекту подписки WooCommerce и журналы ошибок, но не смог убедиться, что часть $subscription->get_user_id() работает должным образом. Буду признателен за любые идеи и предложения по надежному обеспечению этой функциональности!

Подробнее здесь: https://stackoverflow.com/questions/791 ... activation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»