2017-03-28 2 views
0

woocommerce 구독을 사용하고 있는데 사용자가 구독을 업그레이드하거나 다운 그레이드하면 ID가 새 주문으로 표시되지만 구독 ID를 가져올 수없는 경우 외부 시스템을 업데이트하는 플러그인을 작성하고 있습니다. 그것은 상수입니다) 주문 ID와 관련된, 나는 문서를 확인하지만 솔루션을 찾을 수 없습니다.현재 주문과 관련된 가입 ID를 얻는 방법은 무엇입니까?

답변

0

당신은 WooCommerce 구독에서 제공하는 processed_subscription_payment 행동으로 후킹하여이 데이터에 액세스 할 수 있습니다 :

add_action('processed_subscription_payment', 'se43079522_process_subscription', 10, 2); 

function se43079522_process_subscription($user_id, $subscription_key) { 
    // here you have access to the $subscription_key (ID) and the $user_id associated 
} 

이 링크에서보세요 : https://docs.woocommerce.com/document/subscriptions/develop/action-reference/을이 플러그인과 함께 할 수있는 작업에 대한 자세한 내용은.

OR, 당신과 같이 수동으로이 작업을 수행 할 수 있습니다

가 작동하지 않습니다 불행히도 워크를 통해

global $woocommerce; 

// Get the order ID and save as variable 
$order_id = [ORDER_ID]; 

// Get the order object 
$order = new WC_Order($order_id); 

// Loop through the subscription order 
foreach (WC_Subscriptions_Order::get_recurring_items($order) as $order_item) { 

    // Get the subscription key 
    $subscription_key = WC_Subscriptions_Manager::get_subscription_key($order->id, WC_Subscriptions_Order::get_items_product_id($order_item)); 

} 

// This is your subscription key (ID) 
echo $subscription_key; 
+0

에 대한 의견을 읽고, 나는 주문 ID를 얻을 수 있습니다하지만 난을 얻을 수 없다 구독 ID를 위의 함수를 사용하여, 심지어 복사 및 붙여 넣기 코드를 여기에 아무런 변경없이 결과를 볼 수있는 에코를 추가했지만 전혀 출력이 없었습니다, 오류 로그는 깨끗하고, 어쨌든 PHP의 동작을 추적하고 프로세스 중에 어떤 클래스/후크가 활성화되었는지 확인하십시오. – Yossi

+0

주문에 대한 적절한 ID로'[ORDER_ID]'을 (를) 바꿨습니까? WP-config.php에서'WP_DEBUG'를 켜는 것은 어떨까요? –

+0

나는 'woocommerce_order_status_completed'액션에서 그것을 얻었고 에코는 그것을 출력했지만 순서 아이디 인 구독 아이디는 비어있었습니다. – Yossi