Copy
$status = isset($params['ct_status']) ? $params['ct_status'] : $params['od_status'];
음.. 일단 제가 짯던 코드가 작동하긴 하더군요.. 그런데 제가 유도하려는 것은
주문한 사람(user_id) 에 대해서 user meta 를 추가하려고 합니다.
문제는 ct_status 값과, od_status 값을 사용하셧던데
od_status 의 경우는 wp_gc_shop_order 테이블에 존재하고, ct_status 값은 wp_gc_shop_cart 테이블 내의 필드로 존재하더군요
제가 필요한 것은 it_id 값과 user_id 혹은 mb_id 입니다.
params 에 넘어오는 인자들에 대해서 좀더 여쭤봐도 될까요?
코드는 아래와 같이 짯지만 미작동입니다 ㅠ..
Copy
function order_form_complete($od_id, $params, $qstr, $url){ //global $current_user; //get_currentuserinfo(); //$user_ID = $current_user->ID; //If in this happening, it need to add user-meta into wp-admin user's data, because of success processing is unique for wp-admin user. $status = isset($params['ct_status']) ? $params['ct_status'] : $params['od_status']; $order_data = $wpdb->get_row( "SELECT * FROM wp_gc_shop_cart WHERE od_id = $od_id", ARRAY_A ); if ( $status == 'complete' && $order_data['it_id'] == 16590){ add_user_meta($order_data['user_id'], 'mc_check', 2, true); } }//do_action('gc_order_form_cart_update', $od_id, $params, $qstr, $url );add_action('gc_order_form_cart_update','order_form_complete',10,4);
|
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
아래와 같이 바꿔주세요.
Copy
function order_form_complete($od_id, $params, $qstr, $url){ global $wpdb; //global $current_user; //get_currentuserinfo(); //$user_ID = $current_user->ID; //If in this happening, it need to add user-meta into wp-admin user's data, because of success processing is unique for wp-admin user. $status = isset($params['ct_status']) ? $params['ct_status'] : $params['od_status']; //od_id는 배열일수도 있습니다. (리스트에서는 배열, 상세보기에서는 단일) foreach( (array) $od_id as $order_id ){ if( empty($order_id) ) continue; $od = gc_get_order_data($order_id); if( empty($od['od_id']) ) continue; // 주문한 상품목록 $sql = $wpdb->prepare(" select it_id from {$wpdb->gc_shop_cart_table} where od_id = %.0f group by it_id order by ct_id ", $od['od_id']); $results = $wpdb->get_results($sql, ARRAY_A); $it_ids = array(); foreach($results as $cart){ if( empty($cart['it_id']) ) continue; $it_ids[] = $cart['it_id']; } if ( $status == 'complete' && in_array(16590, $it_ids) ){ add_user_meta($od['mb_id'], 'mc_check', 2, true); } } }//do_action('gc_order_form_cart_update', $od_id, $params, $qstr, $url );add_action('gc_order_form_cart_update','order_form_complete',10,4);
답변에 대한 댓글 1개
Remoted
2016-03-18 (금) 14:04:02
gc_get_order_data 왠지 이런 함수가 있을 것 같았더니, 진짜로 있었군요... 역시 섬세하게 만드셧습니다. 노고에 박수를 보내드립니다.. 답변 감사드려요
답변을 작성하려면 로그인이 필요합니다.