안녕하세요.
매번 빠르고 정확한 답변 감사합니다.
제가 제작하고 있는 사이트는 정기 자동결제 기능은 사용하지 않을 예정이고
3개월권, 12개월권 멤버쉽 개념으로 사용할 예정입니다.
이용자에게 멤버쉽 권한이 소멸되는 만료일을 표시 하려고 하는데
어떻게 하면 될까요?
안녕하세요~^^
코스모스팜 회원관리 플러그인을 사용중이신가요?
먼저 아래 코드를 테마의 functions.php 파일에 추가해주세요.
add_shortcode('my_cosmosfarm_members_subscription_status_display', 'my_cosmosfarm_members_subscription_status_display');
function my_cosmosfarm_members_subscription_status_display($args=array()){
$product_id = '';
if(is_array($args) && isset($args['product_id']) && $args['product_id']){
$product_id = intval($args['product_id']);
}
if(!$product_id){
return '숏코드에 product_id 값을 입력해주세요';
}
if(!is_user_logged_in()){
return '로그인해주세요';
}
$args = array(
'post_type' => 'cosmosfarm_order',
'author' => get_current_user_id(),
'orderby' => 'ID',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'product_id',
'value' => $product_id,
'compare' => '=',
),
array(
'key' => 'status',
'value' => 'paid',
'compare' => '=',
),
array(
'key' => 'subscription_next',
'value' => array('success', 'wait'),
'compare' => 'IN',
),
),
);
$query = new WP_Query($args);
if($query->found_posts){
$order = new Cosmosfarm_Members_Subscription_Order($query->post->ID);
if($order->ID()){
$end_datetime = $order->end_datetime();
if($end_datetime){
return sprintf('이용기간 %s 까지', date('Y년 m월 d일 H:i', strtotime($end_datetime)));
}
else{
return '이용기간 무제한';
}
}
}
return '미가입';
}
워드프레스 관리자 -> 외모 -> 테마 편집기 메뉴에서 테마의 functions.php 파일을 편집할 수 있습니다.
그리고 페이지나 위젯 등에 아래 처럼 숏코드를 입력하시면 이용기간이 자동으로 표시됩니다.
상품 : [my_cosmosfarm_members_subscription_status_display product_id="1"]
product_id 값은 실제
워드프레스 관리자 -> 정기결제 -> 상품 메뉴에 등록된 상품들의 번호로 입력해주셔야 합니다.
테스트 해보시고 알려주시겠어요?
고맙습니다.