WooCommerce 구독에서 사용자 ID 가져오기
WooCommerce Subscriptions 플러그인을 사용하고 있으며 지정된 wc_subscription의 고객 또는 userid를 가져오려고 합니다.
사용해 왔지만 실패한 코드는 다음과 같습니다.
add_action( 'woocommerce_scheduled_subscription_trial_end', 'registration_trial_expired', 100 );
function registration_trial_expired( $wc_subscription ) {
mail("example@gmail.com", "Expired", "Someone's order has expired");
$userid = $wc_subscription->customer_user;
mail("example@gmail.com", "Expired", "Someone's order has expired with customer".$userid);
...
}
내 생각에는 말이지…$wc_subscription->customer_user
사용자 ID가 있지만 비어 있습니다.사실 코드가 계속되는 것을 막습니다.
사용자 ID를 얻으려면 어떻게 해야 합니까?$wc_subscription
?
클래스 WC_Subscription 메서드는 및 클래스에서 상속되므로 메서드를 다음과 같이 사용할 수 있습니다.
$userid = $wc_subscription->get_user_id();
이 코드는 테스트되고 WC_Subscription 인스턴스 개체와 함께 작동합니다.
코드는 다음과 같습니다.
add_action( 'woocommerce_scheduled_subscription_trial_end', 'registration_trial_expired', 100 );
function registration_trial_expired( $wc_subscription ) {
mail("example@gmail.com", "Expired", "Someone's order has expired");
$userid = $wc_subscription->get_user_id(); // <= HERE
mail("example@gmail.com", "Expired", "Someone's order has expired with customer".$userid);
// ...
}
갱신하다 (OP의 의견에 따라)
인수가 서브스크립션 개체가 아닌 서브스크립션 ID였기 때문입니다.
그래서 코드를 다음과 같이 변경했습니다.
add_action( 'woocommerce_scheduled_subscription_trial_end', 'registration_trial_expired', 100 );
function registration_trial_expired( $subscription_id ) {
// Get an occurrence of the WC_Subscription object
$subscription = wcs_get_subscription( $subscription_id );
// Get the user ID (or customer ID)
$user_id = $subscription->get_user_id();
// The email adress
$email = 'example@gmail.com';
// The theme domain (replace with your theme domain for localisable strings)
$domain = 'woocommerce';
mail( $email, 'Expired', __("Someone’s order has expired", $domain);
mail( $email, 'Expired', __("Someone’s order has expired with customer", $domain) . $user_id );
// ...
}
WC_Subscription은 WC_ORDER의 확장 버전이므로 WC_ORDER와 동일한 호출을 사용할 수 있습니다.
코드가 변조되었습니다.
add_action( 'woocommerce_scheduled_subscription_trial_end', 'registration_trial_expired', 100 );
function registration_trial_expired( $wc_subscription )
{
$order_billing_email = $wc_subscription->get_billing_email();
$User = get_user_by( 'email', $order_billing_email ); /
$FirstName = $User->first_name;
$LastName = $User->last_name;
$UserId = $User->ID;
}
현재 사용자 개체(WP_User)를 검색합니다.글로벌 변수 $current_user를 사용하는 get_currentuserinfo()의 래퍼입니다.
wp_get_current_user();
그러나 다음에서 도출할 수 있도록 감가상각될 수 있습니다.
$userdata = WP_User::get_data_by( $field, $value );
언급URL : https://stackoverflow.com/questions/43108453/get-the-user-id-in-woocommerce-subscriptions
'source' 카테고리의 다른 글
포인터 커서에 대한 CSS 클래스 (0) | 2023.09.17 |
---|---|
regex 문자 괄호 안에 하이픈도 포함해서요? (0) | 2023.09.17 |
MySQL 오류:SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 다음에 사용할 올바른 구문을 확인하십시오. (0) | 2023.09.17 |
jQuery/JavaScript로 숫자나 문자를 탐지하시겠습니까? (0) | 2023.09.17 |
열이 목록인 data.frame 생성 (0) | 2023.09.17 |