
Друзья подскажите, как добавить новые условия редиректа по ролям пользователей и наличию регистрации WooCommerce?
Незарегистрированный пользователь покупает товар из определенной категории (учитывать ID), добавляет его в корзину и переходит на оформление заказа.
Его проверяет на наличие регистрации. Если он зарегистрирован, то оформляет заказ. Если нет, его перекидывает на регистрацию и обратно на оформление заказа.
После оформления заказа, если он купил товар определенной категории, его перекидывает на кастомную страницу "Thank You",
либо сразу на страницу редактирования аккаунта "edit-account" в личном кабинете.
В принципе, для незарегистрированного пользователя есть возможность включить автоматическое создание аккаунта при покупке товара,
вот только надо добавить условие покупки товара из определенной категории. И сделать редирект после оформления заказа.
По ролям пользователей я решил. Если человек покупает товар, его автоматом переводит на новую роль.
Незарегистрированный пользователь покупает товар из определенной категории (учитывать ID), добавляет его в корзину и переходит на оформление заказа.
Его проверяет на наличие регистрации. Если он зарегистрирован, то оформляет заказ. Если нет, его перекидывает на регистрацию и обратно на оформление заказа.
После оформления заказа, если он купил товар определенной категории, его перекидывает на кастомную страницу "Thank You",
либо сразу на страницу редактирования аккаунта "edit-account" в личном кабинете.
В принципе, для незарегистрированного пользователя есть возможность включить автоматическое создание аккаунта при покупке товара,
вот только надо добавить условие покупки товара из определенной категории. И сделать редирект после оформления заказа.
По ролям пользователей я решил. Если человек покупает товар, его автоматом переводит на новую роль.
Код:
add_action( 'woocommerce_order_status_completed', 'woo_change_role_on_purchase' );
function woo_change_role_on_purchase( $order_id ) {
// get order object and items
$order = new WC_Order( $order_id );
$items = $order->get_items();
$product_id = 222;
foreach ( $items as $item ) {
if( $product_id == $item['product_id'] && $order->user_id ) {
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'customer' );
// Add role
$user->add_role( 'subscriber' );
}
}
}