コード例 #1
0
ファイル: payments.php プロジェクト: linniepinski/perssistant
/**
 * rennder user package info
 * @param Integer $user_ID the user_ID want to render
 *
 * @package AE Package
 * @category payment
 * 
 * @since 1.0
 * @author Dakachi
 */
function ae_user_package_info($user_ID)
{
    if (!$user_ID) {
        return;
    }
    global $ae_post_factory;
    $ae_pack = $ae_post_factory->get('pack');
    $packs = $ae_pack->fetch();
    $orders = AE_Payment::get_current_order($user_ID);
    $package_data = AE_Package::get_package_data($user_ID);
    foreach ($packs as $package) {
        $number_of_post = $package->et_number_posts;
        $sku = $package->sku;
        $text = '';
        if (isset($package_data[$sku]) && $package_data[$sku]['qty'] > 0) {
            $order = get_post($orders[$sku]);
            if (!$order || is_wp_error($order) || !in_array($order->post_status, array('publish', 'pending'))) {
                continue;
            }
            /**
             * print text when company has job left in package
             */
            ?>
        <p>
        <?php 
            $number_of_post = $package_data[$sku]['qty'];
            if ($order->post_status == 'publish') {
                printf(__("You purchased package <strong>%s</strong> and have %d post/s left.", 'aecore-payments-backend'), $package->post_title, $number_of_post);
            }
            if ($order->post_status == 'pending') {
                printf(__("You purchased package <strong>%s</strong> and have %d post/s left. Your posted post is pending until payment.", 'aecore-payments-backend'), $package->post_title, $number_of_post);
            }
            ?>
        </p>
    
    <?php 
        }
    }
}
コード例 #2
0
 /**
  * update user package data after post an ad
  * @param string $pakage the package sku
  * @param int $user_id the user id
  *
  * @return null
  * @author  Dakachi
  */
 public static function update_package_data($package, $user_id = 0)
 {
     if (!$user_id) {
         global $user_ID;
         $user_id = $user_ID;
     }
     $used_package = self::get_package_data($user_id);
     if (!isset($used_package[$package])) {
         return;
     }
     $qty = (int) ($used_package[$package]['qty'] - 1);
     if ($qty == 0) {
         // remove user current order for the package
         $group = AE_Payment::get_current_order($user_id);
         unset($group[$package]);
         AE_Payment::set_current_order($user_id, $group);
     }
     $used_package[$package]['qty'] = $qty;
     self::set_package_data($user_id, $used_package);
 }
コード例 #3
0
 function do_checkout(ET_Order $order)
 {
     global $ae_post_factory, $user_ID;
     /**
      * check session
      */
     $session = et_read_session();
     $ad_id = isset($session['ad_id']) ? $session['ad_id'] : '';
     if ($ad_id) {
         $post = get_post($ad_id);
         // ad id existed
         /**
          * get object by post type and convert
          */
         $post_obj = $ae_post_factory->get($post->post_type);
         $ad = $post_obj->convert($post);
         if (!is_wp_error($ad)) {
             /**
              * check user is available to use selected package
              */
             $available = AE_Package::check_use_package($ad->et_payment_package, $ad->post_author);
             if ($available) {
                 // process order data
                 $payment_return = array('ACK' => true, 'payment_type' => 'usePackage');
                 /**
                  * get user current order for package
                  */
                 $current_order = AE_Payment::get_current_order($ad->post_author, $ad->et_payment_package);
                 $order = get_post($current_order);
                 if (!$order || is_wp_error($order)) {
                     return array('ACK' => false, 'payment_type' => 'usePackage', 'msg' => __("Invalid Order or Package", ET_DOMAIN));
                 }
                 $ad_data = array();
                 $ad_data['ID'] = $ad->ID;
                 /**
                  * update ad order
                  */
                 $ad_data['et_ad_order'] = $current_order;
                 $ad_data['post_status'] = 'pending';
                 if ($order->post_status == 'publish') {
                     $options = AE_Options::get_instance();
                     $ad_data['et_paid'] = 1;
                     if (!$options->use_pending) {
                         $ad_data['post_status'] = 'publish';
                     }
                 } else {
                     $ad_data['et_paid'] = 0;
                 }
                 $ad_data['change_status'] = 'change_status';
                 $ad_data['method'] = 'update';
                 /**
                  * sync Ad data
                  */
                 $return = wp_update_post($ad_data);
                 // update post paid status
                 update_post_meta($ad->ID, 'et_paid', $ad_data['et_paid']);
                 // update post package order id
                 update_post_meta($ad->ID, 'et_ad_order', $ad_data['et_ad_order']);
                 /**
                  * update seller package quantity
                  */
                 AE_Package::update_package_data($ad->et_payment_package, $ad->post_author);
                 return $payment_return;
             }
         }
     }
     return array('ACK' => false, 'payment_type' => 'usePackage', 'msg' => __("Invalid Ad ID", ET_DOMAIN));
 }
コード例 #4
0
<!-- Step 1 -->
<?php 
global $user_ID, $ae_post_factory;
$ae_pack = $ae_post_factory->get('pack');
$packs = $ae_pack->fetch('pack');
$package_data = AE_Package::get_package_data($user_ID);
// echo '<pre>';
// var_dump($package_data);
$orders = AE_Payment::get_current_order($user_ID);
?>

<div class="step-wrapper step-plan" id="step-plan">
	<a href="#" class="step-heading active">
    	<span class="number-step">1</span>
        <span class="text-heading-step"><?php 
_e('Select your pricing plan', ET_DOMAIN);
?>
</span>
        <i class="fa fa-caret-down"></i>
    </a>
    <div class="step-content-wrapper content">
    	<ul class="list-price">
        <?php 
foreach ($packs as $key => $package) {
    $number_of_post = $package->et_number_posts;
    $sku = $package->sku;
    $text = '';
    $order = false;
    if ($number_of_post > 1) {
        // get package current order
        if (isset($orders[$sku])) {