우커머스 상품 결제 시 자동 등업 되는 아래 코드를 썼습니다.
그런데 결제가 실패해서 결제대기중인 경우에도 등업이 되는 경우가 발생합니다.
결제 완료시에만 등업 되려고 하면 코드를 어떻게 수정해야 하나요?ㅠㅠ
주문 취소 시 자동 등급 다운 되게 할 수도 있을까요?
add_action( 'woocommerce_order_status_completed', 'wpglorify_change_role_on_purchase' );
function wpglorify_change_role_on_purchase( $order_id ) {
// get order object and items
$order = new WC_Order( $order_id );
$items = $order->get_items();
$product_id = 26064; // that's a specific product ID
foreach ( $items as $item ) {
if( $product_id == $item['product_id'] && $order->user_id ) {
$user = new WP_User( $order->user_id );
// Remove old role
$user->remove_role( 'subscriber' );
// Add new role
$user->add_role( 'customer' );
}
}
}
안녕하세요~^^
$order->get_status() 코드를 활용하시면 주문 상태를 가져오실 수 있습니다.
주문 메소드 관련해서는 아래 링크를 참고해보세요.
https://www.codegrepper.com/code-examples/php/get+order+status+by+order+id+woocommerce
우커머스 주문 상태는 아래 링크에서 확인 가능합니다.
https://docs.woocommerce.com/document/managing-orders/
주문 취소 시 코드를 추가하고 실행되게 하시려면
woocommerce_order_status_cancelled 액션을 활용해보세요.
아래의 코드를 활용해보시겠어요?
add_action('woocommerce_order_status_cancelled', 'woocommerce_order_status_cancelled_20201214', 10, 1);
function woocommerce_order_status_cancelled_20201214($order_id){
// 이곳에 코드를 추가해보세요.
}
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.