• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как сделать кастомный редирект в WooCommerce?

Dimitry

Форумчанин
Друзья подскажите, как добавить новые условия редиректа по ролям пользователей и наличию регистрации WooCommerce?

Незарегистрированный пользователь покупает товар из определенной категории (учитывать 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' );
    }

}

}
 
Сверху Снизу