Example #1
0
 /**
  * Get instance.
  *
  * @return Edr_Memberships
  */
 public static function get_instance()
 {
     if (!self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 public function testUpdateSplittedTerms()
 {
     // Remove split_shared_term to prevent automatic categories update for memberships.
     remove_action('split_shared_term', array('IB_Educator_Main', 'split_shared_term'));
     // Split shared term.
     $new_term = wp_update_term($this->terms['term3']['term_id'], 'ib_educator_category', array('name' => 'Edu'));
     // Update shared terms for use in memberships.
     $install = new Edr_Install();
     $install->update_1_4_4();
     $ms = Edr_Memberships::get_instance();
     $meta = $ms->get_membership_meta($this->posts[0]);
     // The term_id stored in the membership's categories setting should be updated.
     $this->assertEquals(array($new_term['term_id'], $this->terms['term4']['term_id']), $meta['categories']);
 }
Example #3
0
 /**
  * Process payment.
  *
  * @return array
  */
 public function process_payment($object_id, $user_id = 0, $payment_type = 'course', $atts = array())
 {
     if (!$user_id) {
         $user_id = get_current_user_id();
     }
     if (!$user_id) {
         return array('status' => '', 'redirect' => home_url('/'));
     }
     // Add payment.
     $payment = edr_get_payment();
     $payment->user_id = $user_id;
     $payment->payment_type = $payment_type;
     $payment->payment_status = 'complete';
     $payment->payment_gateway = $this->get_id();
     $payment->amount = 0.0;
     $payment->currency = ib_edu_get_currency();
     if ('course' == $payment_type) {
         $payment->course_id = $object_id;
         $payment->amount = ib_edu_get_course_price($object_id);
     } elseif ('membership' == $payment_type) {
         $payment->object_id = $object_id;
         $ms = Edr_Memberships::get_instance();
         $payment->amount = $ms->get_price($object_id);
     }
     if (!empty($atts['ip'])) {
         $payment->ip = $atts['ip'];
     }
     if (0.0 == $payment->amount) {
         $payment->save();
         if ($payment->ID) {
             if ('course' == $payment->payment_type) {
                 // Setup course entry.
                 $entry = edr_get_entry();
                 $entry->course_id = $object_id;
                 $entry->user_id = $user_id;
                 $entry->payment_id = $payment->ID;
                 $entry->entry_status = 'inprogress';
                 $entry->entry_date = date('Y-m-d H:i:s');
                 $entry->save();
             } elseif ('membership' == $payment->payment_type) {
                 // Setup membership.
                 $ms->setup_membership($user_id, $object_id);
             }
         }
     }
     return array('status' => 'complete', 'redirect' => get_permalink($object_id), 'payment' => $payment);
 }
Example #4
0
/**
 * Output courses on the author page.
 *
 * @param WP_Query $query
 * @return WP_Query
 */
function educator_author_page_posts($query)
{
    if (!is_admin() && $query->is_main_query()) {
        if (is_author()) {
            $view = get_query_var('view');
            switch ($view) {
                case 'courses':
                    $post_type = 'ib_educator_course';
                    break;
                default:
                    $post_type = 'post';
            }
            $query->set('post_type', $post_type);
        } elseif (is_post_type_archive('ib_educator_course') || is_tax('ib_educator_category')) {
            $membership_id = get_query_var('membership_id');
            if ($membership_id) {
                $ms = Edr_Memberships::get_instance();
                $meta = $ms->get_membership_meta($membership_id);
                if (!empty($meta['categories'])) {
                    $query->set('tax_query', array(array('taxonomy' => 'ib_educator_category', 'field' => 'id', 'terms' => $meta['categories'], 'operator' => 'IN')));
                }
            }
        }
    }
    return $query;
}
        } else {
            $args['country'] = ib_edu_get_location('country');
        }
        // Get state.
        if (isset($_POST['billing_state'])) {
            $args['state'] = $_POST['billing_state'];
        } elseif (!empty($billing['state'])) {
            $args['state'] = $billing['state'];
        } else {
            $args['state'] = ib_edu_get_location('state');
        }
        // Get price.
        if ('ib_educator_course' == $post->post_type) {
            $args['price'] = ib_edu_get_course_price($post->ID);
        } elseif ('ib_edu_membership' == $post->post_type) {
            $args['price'] = Edr_Memberships::get_instance()->get_price($post->ID);
        }
        // Output payment summary.
        echo '<div id="edu-payment-info" class="edu-payment-info">' . Edr_StudentAccount::payment_info($post, $args) . '</div>';
        // Payment gateways.
        $gateways = IB_Educator_Main::get_gateways();
        ?>

				<?php 
        if ($args['price'] && !empty($gateways)) {
            ?>
					<div class="ib-edu-form-field<?php 
            if (in_array('empty_payment_method', $error_codes)) {
                echo ' error';
            }
            ?>
Example #6
0
 /**
  * Edit member action.
  */
 public static function edit_member()
 {
     if (count($_POST)) {
         // Verify nonce.
         check_admin_referer('ib_educator_edit_member');
         // Capability check.
         if (!current_user_can('manage_educator')) {
             return;
         }
         $ms = Edr_Memberships::get_instance();
         $member_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
         $data = array();
         $errors = array();
         if (isset($_POST['user_id'])) {
             $data['user_id'] = intval($_POST['user_id']);
         }
         if (isset($_POST['membership_id'])) {
             $data['membership_id'] = intval($_POST['membership_id']);
         }
         if (isset($_POST['membership_status'])) {
             $data['status'] = sanitize_text_field($_POST['membership_status']);
         }
         $date_regex = '/^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$/';
         if (isset($_POST['expiration'])) {
             if (preg_match($date_regex, $_POST['expiration'])) {
                 $data['expiration'] = $_POST['expiration'];
             } else {
                 $data['expiration'] = '0000-00-00 00:00:00';
             }
         }
         if (isset($_POST['paused'])) {
             if (preg_match($date_regex, $_POST['paused'])) {
                 $data['paused'] = $_POST['paused'];
             } else {
                 $data['paused'] = '0000-00-00 00:00:00';
             }
         }
         // UNIQUE memberships only.
         if (!$member_id && !empty($data['user_id'])) {
             $user_membership = $ms->get_user_membership($data['user_id']);
             if (!empty($user_membership)) {
                 $errors[] = 'member_exists';
             }
         }
         if (!empty($errors)) {
             ib_edu_message('edit_member_errors', $errors);
             return;
         }
         $user_membership = $member_id ? $ms->get_user_membership($member_id) : null;
         $data['ID'] = $user_membership ? $user_membership['ID'] : 0;
         $data['ID'] = $ms->update_user_membership($data);
         if ('expired' == $data['status']) {
             $ms->pause_membership_entries($data['user_id']);
         }
         wp_redirect(admin_url('admin.php?page=ib_educator_members&edu-action=edit-member&id=' . intval($data['user_id']) . '&edu-message=saved'));
         exit;
     }
 }
Example #7
0
 /**
  * Test if plugin sends membership expiration notifications to students.
  */
 public function testMembershipExpirationNotification()
 {
     add_filter('wp_mail', array($this, 'wp_mail_expiration_notification'));
     $ms = Edr_Memberships::get_instance();
     $user = wp_insert_user(array('user_login' => 'expired3', 'user_email' => '*****@*****.**', 'user_pass' => '123456', 'role' => 'student'));
     $membership = $this->addMembership(array('price' => 100, 'period' => 'months', 'duration' => 1, 'categories' => array($this->categories[0])));
     $ms->setup_membership($user, $membership);
     $in5days = strtotime('+ 5 days', strtotime(date('Y-m-d 23:59:59')));
     $ms->update_user_membership($user, array('expiration' => date('Y-m-d H:i:s', $in5days)));
     $_SERVER['SERVER_NAME'] = 'localhost';
     Edr_MembershipsRun::send_expiration_notifications();
 }
Example #8
0
 /**
  * Resume the user's membership.
  */
 public static function resume_membership()
 {
     if (1 != ib_edu_get_option('pause_memberships', 'memberships')) {
         return;
     }
     if (!isset($_GET['_wpnonce']) || !wp_verify_nonce($_GET['_wpnonce'], 'ib_educator_resume_membership')) {
         return;
     }
     // Get the current user id.
     $user_id = get_current_user_id();
     if (!$user_id) {
         return;
     }
     $ms = Edr_Memberships::get_instance();
     $user_membership = $ms->get_user_membership($user_id);
     if ($user_membership && 'paused' == $user_membership['status']) {
         $ms->resume_membership($user_id);
     }
 }
<?php

global $post;
$author_id = $post->post_author;
$teacher_id = training_wpo_the_teacher_id();
$api = IB_Educator::get_instance();
$user_id = get_current_user_id();
$course_id = get_the_ID();
$categories = get_the_term_list(get_the_ID(), 'ib_educator_category', '', esc_html__(', ', 'training'));
$students = training_wpo_get_students_by_course($post->ID);
$options = get_post_meta(get_the_id(), 'wpo_postconfig', true);
$membership_access = Edr_Memberships::get_instance()->membership_can_access($course_id, $user_id);
if ($membership_access) {
    $register_url = ib_edu_get_endpoint_url('edu-action', 'join', get_permalink($course_id));
} else {
    $register_url = ib_edu_get_endpoint_url('edu-course', $course_id, get_permalink(ib_edu_page_id('payment')));
}
?>

<article id="course-<?php 
the_ID();
?>
" <?php 
post_class('ib-edu-course-single');
?>
>
	<div class="course-content entry-content space-top-20">

		<div class="col-md-4">	
			<div class="course-information">
				<?php 
Example #10
0
 /**
  * Create payment.
  *
  * @param int $object_id ID of the object the payment is to be associated with.
  * @param int $user_id
  * @param string $payment_type
  * @return IB_Educator_Payment
  */
 public function create_payment($object_id, $user_id, $payment_type, $atts = array())
 {
     $payment = edr_get_payment();
     $payment->user_id = $user_id;
     $payment->payment_type = $payment_type;
     $payment->payment_status = 'pending';
     $payment->payment_gateway = $this->get_id();
     $payment->currency = ib_edu_get_currency();
     if ('course' == $payment_type) {
         $payment->course_id = $object_id;
         $payment->amount = ib_edu_get_course_price($object_id);
     } elseif ('membership' == $payment_type) {
         $payment->object_id = $object_id;
         $payment->amount = Edr_Memberships::get_instance()->get_price($object_id);
     }
     $tax_data = null;
     if (ib_edu_collect_billing_data($object_id)) {
         // Save billing data.
         $billing = get_user_meta($user_id, '_ib_educator_billing', true);
         if (!is_array($billing)) {
             $billing = array();
         }
         $payment->first_name = get_user_meta($user_id, 'first_name', true);
         $payment->last_name = get_user_meta($user_id, 'last_name', true);
         $payment->address = isset($billing['address']) ? $billing['address'] : '';
         $payment->address_2 = isset($billing['address_2']) ? $billing['address_2'] : '';
         $payment->city = isset($billing['city']) ? $billing['city'] : '';
         $payment->state = isset($billing['state']) ? $billing['state'] : '';
         $payment->postcode = isset($billing['postcode']) ? $billing['postcode'] : '';
         $payment->country = isset($billing['country']) ? $billing['country'] : '';
         // Calculate tax.
         $edu_tax = Edr_TaxManager::get_instance();
         $tax_data = $edu_tax->calculate_tax($edu_tax->get_tax_class_for($object_id), $payment->amount, $payment->country, $payment->state);
         $payment->tax = $tax_data['tax'];
         $payment->amount = $tax_data['total'];
     }
     if (!empty($atts['ip'])) {
         $payment->ip = $atts['ip'];
     }
     $payment->save();
     // Save tax data.
     if ($tax_data) {
         foreach ($tax_data['taxes'] as $tax) {
             $payment->update_line(array('object_id' => $tax->ID, 'line_type' => 'tax', 'amount' => $tax->amount, 'name' => $tax->name));
         }
     }
     return $payment;
 }
Example #11
0
 /**
  * Output courses filter block.
  */
 function educator_courses_filter($args = array())
 {
     $output = '<div id="courses-filter" class="clearfix">';
     // get current membership id.
     $membership_id = get_query_var('membership_id');
     // Categories filter.
     $terms = get_terms(array('ib_educator_category'));
     if (!empty($terms) && !is_wp_error($terms)) {
         $current_category = get_query_var('ib_educator_category');
         $current_category_name = '';
         foreach ($terms as $term) {
             if ($term->slug == $current_category) {
                 $current_category_name = $term->name;
                 break;
             }
         }
         if (empty($current_category_name)) {
             $current_category_name = __('Category', 'ib-educator');
         }
         $output .= '<div class="drop-down"><a href="#"><span class="text">' . esc_html($current_category_name) . '</span><span class="icon"></span></a><ul>';
         // Reset link.
         if (isset($args['category_same_page'])) {
             $permalink = get_permalink();
         } else {
             $permalink = get_post_type_archive_link('ib_educator_course');
         }
         if ($membership_id) {
             $permalink = add_query_arg('membership_id', $membership_id, $permalink);
         }
         $output .= '<li><a href="' . esc_url($permalink) . '">' . __('All', 'ib-educator') . '</a></li>';
         // Term links.
         foreach ($terms as $term) {
             if (isset($args['category_same_page'])) {
                 $term_permalink = add_query_arg('ib_educator_category', $term->slug, $permalink);
             } else {
                 $term_permalink = get_term_link($term);
             }
             if ($membership_id) {
                 $term_permalink = add_query_arg('membership_id', $membership_id, $term_permalink);
             }
             $output .= '<li><a href="' . esc_url($term_permalink) . '">' . esc_html($term->name) . '</a></li>';
         }
         $output .= '</ul></div>';
     }
     if (class_exists('Edr_Memberships') && apply_filters('edutheme_memberships_filter', true)) {
         $memberships = Edr_Memberships::get_instance()->get_memberships();
         if (!empty($memberships)) {
             $title = '';
             foreach ($memberships as $membership) {
                 if ($membership_id == $membership->ID) {
                     $title = $membership->post_title;
                 }
             }
             if (empty($title)) {
                 $title = __('Membership', 'ib-educator');
             }
             if ($memberships) {
                 $output .= '<div class="drop-down"><a href="#"><span class="text">' . esc_html($title) . '</span><span class="icon"></span></a><ul>';
                 $permalink = is_ssl() ? 'https' : 'http';
                 $permalink .= '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
                 if (get_option('permalink_structure')) {
                     $permalink = preg_replace('/\\/page\\/[0-9]+/i', '', $permalink);
                 } else {
                     $permalink = remove_query_arg('paged', $permalink);
                 }
                 $output .= '<li><a href="' . esc_url(remove_query_arg('membership_id', $permalink)) . '">' . __('All', 'ib-educator') . '</a></li>';
                 foreach ($memberships as $membership) {
                     $m_permalink = add_query_arg('membership_id', $membership->ID, $permalink);
                     $output .= '<li><a href="' . esc_url($m_permalink) . '">' . esc_html($membership->post_title) . '</a></li>';
                 }
                 $output .= '</ul></div>';
             }
         }
     }
     // Number of courses.
     $num_courses = 0;
     if (isset($args['num_courses'])) {
         $num_courses = $args['num_courses'];
     } elseif (isset($GLOBALS['wp_query']->found_posts)) {
         $num_courses = $GLOBALS['wp_query']->found_posts;
     }
     if ($num_courses) {
         $output .= '<div class="courses-num">' . sprintf(__('%d course(s)', 'ib-educator'), intval($num_courses)) . '</div>';
     }
     $output .= '</div>';
     echo $output;
     // sanitized above
 }
Example #12
0
 /**
  * Setup payment item (e.g. course, membership).
  *
  * @param IB_Educator_Payment $payment
  */
 public function setup_payment_item($payment)
 {
     if ('course' == $payment->payment_type) {
         // Setup course entry.
         $entry = $this->get_entry(array('payment_id' => $payment->ID));
         if (!$entry) {
             $entry = edr_get_entry();
             $entry->course_id = $payment->course_id;
             $entry->user_id = $payment->user_id;
             $entry->payment_id = $payment->ID;
             $entry->entry_status = 'inprogress';
             $entry->entry_date = date('Y-m-d H:i:s');
             $entry->save();
             // Send notification email to the student.
             $student = get_user_by('id', $payment->user_id);
             $course = get_post($payment->course_id, OBJECT, 'display');
             if ($student && $course) {
                 ib_edu_send_notification($student->user_email, 'student_registered', array('course_title' => $course->post_title), array('student_name' => $student->display_name, 'course_title' => $course->post_title, 'course_excerpt' => $course->post_excerpt));
             }
         }
     } elseif ('membership' == $payment->payment_type) {
         // Setup membership.
         $ms = Edr_Memberships::get_instance();
         $ms->setup_membership($payment->user_id, $payment->object_id);
         $student = get_user_by('id', $payment->user_id);
         $membership = $ms->get_membership($payment->object_id);
         if ($student && $membership) {
             $user_membership = $ms->get_user_membership($student->ID);
             $membership_meta = $ms->get_membership_meta($membership->ID);
             $expiration = $user_membership ? $user_membership['expiration'] : 0;
             ib_edu_send_notification($student->user_email, 'membership_register', array(), array('student_name' => $student->display_name, 'membership' => $membership->post_title, 'expiration' => $expiration ? date_i18n(get_option('date_format'), $expiration) : __('None', 'ibeducator'), 'price' => $ms->format_price($membership_meta['price'], $membership_meta['duration'], $membership_meta['period'], false)));
         }
     }
 }
Example #13
0
 /**
  * Get payment info table.
  *
  * @param WP_Post $object
  * @param array $args
  * @return string
  */
 public static function payment_info($object, $args = array())
 {
     // Get price.
     if (!isset($args['price'])) {
         if ('ib_educator_course' == $object->post_type) {
             $args['price'] = ib_edu_get_course_price($object->ID);
         } elseif ('ib_edu_membership' == $object->post_type) {
             $args['price'] = Edr_Memberships::get_instance()->get_price($object->ID);
         }
     }
     // Get tax data.
     $tax_enabled = ib_edu_get_option('enable', 'taxes');
     if ($tax_enabled) {
         $edu_tax = Edr_TaxManager::get_instance();
         $tax_data = $edu_tax->calculate_tax($edu_tax->get_tax_class_for($object->ID), $args['price'], $args['country'], $args['state']);
     } else {
         $tax_data = array('taxes' => array(), 'subtotal' => $args['price'], 'tax' => 0.0, 'total' => $args['price']);
     }
     // Items list.
     $output = '<table class="edu-payment-table">';
     $output .= '<thead><tr><th>' . __('Item', 'ibeducator') . '</th><th>' . __('Price', 'ibeducator') . '</th></tr></thead>';
     if ('ib_educator_course' == $object->post_type) {
         $output .= '<tbody><tr><td>';
         if (ib_edu_get_option('payment_lecturer', 'settings')) {
             $output .= sprintf(__('%s with %s', 'ibeducator'), '<a href="' . esc_url(get_permalink($object->ID)) . '" target="_blank">' . esc_html($object->post_title) . '</a>', esc_html(get_the_author_meta('display_name', $object->post_author)));
         } else {
             $output .= '<a href="' . esc_url(get_permalink($object->ID)) . '" target="_blank">' . esc_html($object->post_title) . '</a>';
         }
         $output .= '<input type="hidden" id="payment-object-id" name="course_id" value="' . intval($object->ID) . '"></td>';
         $output .= '<td>' . ib_edu_format_price($tax_data['subtotal'], false) . '</td></tr></tbody>';
     } elseif ('ib_edu_membership' == $object->post_type) {
         $output .= '<tbody><tr><td>' . esc_html($object->post_title);
         $output .= '<input type="hidden" id="payment-object-id" name="membership_id" value="' . intval($object->ID) . '"></td>';
         $ms = Edr_Memberships::get_instance();
         $membership_meta = $ms->get_membership_meta($object->ID);
         $output .= '<td>' . $ms->format_price($tax_data['subtotal'], $membership_meta['duration'], $membership_meta['period']) . '</td></tr></tbody>';
     }
     $output .= '</table>';
     // Summary.
     $output .= '<dl class="edu-payment-summary edu-dl">';
     if ($tax_data['tax'] > 0.0) {
         $output .= '<dt class="payment-subtotal">' . __('Subtotal', 'ibeducator') . '</dt><dd>' . ib_edu_format_price($tax_data['subtotal'], false) . '</dd>';
         foreach ($tax_data['taxes'] as $tax) {
             $output .= '<dt class="payment-tax">' . esc_html($tax->name) . '</dt><dd>' . ib_edu_format_price($tax->amount, false) . '</dd>';
         }
     }
     $output .= '<dt class="payment-total">' . __('Total', 'ibeducator') . '</dt><dd>' . ib_edu_format_price($tax_data['total'], false) . '</dd>';
     $output .= '</dl>';
     return $output;
 }
Example #14
0
 /**
  * Prepare items.
  * Fetch and setup members.
  */
 public function prepare_items()
 {
     $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
     $args = array();
     $args['number'] = $this->get_items_per_page('members_per_page', 10);
     $args['offset'] = ($this->get_pagenum() - 1) * $args['number'];
     if (!empty($_GET['member_name'])) {
         $args['search'] = '*' . $_GET['member_name'] . '*';
     }
     $user_query = Edr_Memberships::get_instance()->get_members($args);
     if (!empty($user_query->results)) {
         $this->set_pagination_args(array('total_items' => $user_query->total_users, 'per_page' => $args['number']));
         $this->items = $user_query->results;
     }
 }
Example #15
0
 /**
  * Save membership meta box.
  *
  * @param int $post_id
  * @param WP_Post $post
  * @param boolean $update
  */
 public static function save_membership_meta_box($post_id, $post, $update)
 {
     if (!isset($_POST['ib_edu_membership_nonce'])) {
         return;
     }
     if (!wp_verify_nonce($_POST['ib_edu_membership_nonce'], 'ib_edu_membership')) {
         return;
     }
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
         return;
     }
     if ('ib_edu_membership' != get_post_type($post_id) || !current_user_can('edit_ib_edu_membership', $post_id)) {
         return;
     }
     $ms = Edr_Memberships::get_instance();
     $meta = $ms->get_membership_meta($post_id);
     // Price.
     if (isset($_POST['_ib_educator_price'])) {
         $meta['price'] = (double) $_POST['_ib_educator_price'];
     }
     // Duration.
     if (isset($_POST['_ib_educator_duration'])) {
         $meta['duration'] = intval($_POST['_ib_educator_duration']);
     }
     // Period.
     if (isset($_POST['_ib_educator_period']) && array_key_exists($_POST['_ib_educator_period'], $ms->get_periods())) {
         $meta['period'] = $_POST['_ib_educator_period'];
     }
     // Categories.
     if (isset($_POST['_ib_educator_categories']) && is_array($_POST['_ib_educator_categories'])) {
         $meta['categories'] = array_map('absint', $_POST['_ib_educator_categories']);
     }
     update_post_meta($post_id, '_ib_educator_membership', $meta);
     self::save_tax_data($post_id);
 }
Example #16
0
<?php

if (!defined('ABSPATH')) {
    exit;
}
if (!current_user_can('manage_educator')) {
    echo '<p>' . __('Access denied', 'ibeducator') . '</p>';
    exit;
}
$api = IB_Educator::get_instance();
$member_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$user = null;
$user_membership = null;
$ms = Edr_Memberships::get_instance();
if ($member_id) {
    $user_membership = $ms->get_user_membership($member_id);
    if ($user_membership) {
        $user = get_user_by('id', $user_membership['user_id']);
    }
}
if (!$user_membership) {
    $user_membership = array('ID' => 0, 'user_id' => 0, 'membership_id' => 0, 'status' => '', 'expiration' => 0, 'paused' => 0);
}
?>
<div class="wrap">
	<h2><?php 
if ($member_id) {
    _e('Edit Member', 'ibeducator');
} else {
    _e('Add Member', 'ibeducator');
}
Example #17
0
 /**
  * Add payment.
  */
 public function addPayment($input)
 {
     $data = array('user_id' => $input['user_id'], 'payment_type' => $input['payment_type'], 'payment_gateway' => 'paypal', 'payment_status' => $input['payment_status'], 'currency' => 'USD');
     if ('course' == $input['payment_type']) {
         $data['course_id'] = $input['course_id'];
         $data['amount'] = ib_edu_get_course_price($input['course_id']);
     } elseif ('membership' == $input['payment_type']) {
         $data['object_id'] = $input['object_id'];
         $ms = Edr_Memberships::get_instance();
         $data['amount'] = $ms->get_price($input['object_id']);
     }
     $payment = $this->api->add_payment($data);
     return $payment->ID;
 }
Example #18
0
 /**
  * Output the price column on the memberships admin page.
  *
  * @param string $column_name
  * @param int $post_id
  */
 public static function memberships_column_output($column_name, $post_id)
 {
     if ('price' == $column_name) {
         $ms = Edr_Memberships::get_instance();
         $membership_meta = $ms->get_membership_meta($post_id);
         echo $ms->format_price($membership_meta['price'], $membership_meta['duration'], $membership_meta['period']);
     }
 }