コード例 #1
0
  /**
   * Revalidate all the invoices
   *
   * @author korotkov@ud
   * @global object $wpdb
   */
  function total_revalidate() {
    global $wpdb;

    /** Recalculate all invoices */
    $invoices = $wpdb->get_col("
      SELECT ID
      FROM {$wpdb->posts}
      WHERE post_type = 'wpi_object'
    ");

    foreach ($invoices as $post_id) {
      $invoice_id = wpi_post_id_to_invoice_id($post_id);
      $this_invoice = new WPI_Invoice();
      $this_invoice->load_invoice("id={$invoice_id}");
      $this_invoice->save_invoice();
    }
  }
コード例 #2
0
 function invoice_id($args = '')
 {
     global $invoice;
     $defaults = array('return' => false, 'force_original' => false);
     extract(wp_parse_args($args, $defaults), EXTR_SKIP);
     if (!empty($invoice['custom_id']) && !$force_original) {
         $result = $invoice['custom_id'];
     } else {
         $result = wpi_post_id_to_invoice_id($invoice['ID']);
     }
     if ($return) {
         return $result;
     }
     echo $result;
 }
コード例 #3
0
 <form action="<?php echo $wpi_settings['links']['manage_invoice']; ?>" method='POST' id="wpi_new_invoice_form">
   <?php echo WPI_UI::input("name=wpi[new_invoice][invoice_id]&value=".rand(10000000, 90000000)."&type=hidden"); ?>
   <table class="form-table" id="get_user_info">
     <tr class="invoice_main">
       <th><label for="wp_invoice_userlookup"><?php _e('E-mail Address:', WPI); ?></label></th>
       <td>
         <?php WPI_UI::draw_user_auto_complete_field(); ?>
         <input type="submit" class="button" id="wp_invoice_create_new_invoice" value="<?php esc_attr(_e('Create New', WPI)); ?>">
         <?php if($wpi_settings['total_invoice_count']) { ?>
           <span id="wp_invoice_copy_invoice" class="wp_invoice_click_me">copy from another</span><br />
           <div class="wp_invoice_copy_invoice">
             <?php $all_invoices = $wpdb->get_results("SELECT ID FROM ".$wpdb->posts." WHERE post_type = 'wpi_object' AND post_title != ''"); ?>
               <select name="wpi[new_invoice][template_copy]">
               <option><?php _e('-- Select Invoice --', WPI) ?></option>
               <?php foreach ($all_invoices as $invoice) {
                       $invoice_id = wpi_post_id_to_invoice_id($invoice->ID);
                       $invoice_obj = new WPI_Invoice();
                       $invoice_obj->load_invoice("id=".$invoice_id);
                       //print_r( $invoice_obj );
                       if ( $invoice_obj->data['type'] != 'single_payment' ) :
               ?>
               <option value="<?php echo $invoice_id; ?>">
                 <?php 
                   if( $invoice_obj->data['type'] == 'recurring' ) {
                 ?> 
                 <?php _e('[Recurring]', WPI) ?> 
                 <?php } ?> 
                 <?php 
                   echo $invoice_obj->data['post_title'] . " - " .$wpi_settings['currency']['symbol'][$invoice_obj->data['default_currency_code']] . wp_invoice_currency_format($invoice_obj->data['subtotal']); 
                 ?>
                 <?php 
コード例 #4
0
 /**
  * Handler for Silent Post Url
  */
 static function server_callback()
 {
     $arb = false;
     $fields = array();
     foreach ($_REQUEST as $name => $value) {
         $fields[$name] = $value;
         if ($name == 'x_subscription_id') {
             $arb = true;
         }
     }
     // Handle recurring billing payments
     if ($arb == true && $fields['x_response_code'] == 1) {
         $paynum = $fields['x_subscription_paynum'];
         $subscription_id = $fields['x_subscription_id'];
         $amount = $fields['x_amount'];
         $invoice_id = wpi_post_id_to_invoice_id(wpi_subscription_id_to_post_id($subscription_id));
         $invoice_obj = new WPI_Invoice();
         $invoice_obj->load_invoice("id={$invoice_id}");
         // Add payment amount
         $event_note = WPI_Functions::currency_format(abs($amount), $invoice_id) . ". ARB payment {$paynum} of {$invoice_obj->data['recurring']['wpi_authorize']['cycles']}";
         $event_amount = $amount;
         $event_type = 'add_payment';
         $invoice_obj->add_entry("attribute=balance&note={$event_note}&amount={$event_amount}&type={$event_type}");
         // Complete subscription if last payment done
         if ($invoice_obj->data['recurring']['wpi_authorize']['cycles'] <= $paynum) {
             WPI_Functions::log_event(wpi_invoice_id_to_post_id($invoice_id), 'invoice', 'update', '', __('Subscription completely paid', WPI));
             wp_invoice_mark_as_paid($invoice_id);
         }
         $invoice_obj->save_invoice();
     }
 }
コード例 #5
0
ファイル: wpi_functions.php プロジェクト: JSpier/smacamp
 /**
  * get invoices by user and status
  *
  * @global object $wpdb
  *
  * @param type $args
  *
  * @return boolean|\WPI_Invoice
  */
 static function get_user_invoices($args)
 {
     $defaults = array('user_id' => false, 'status' => false, 'type' => false);
     extract(wp_parse_args($args, $defaults), EXTR_SKIP);
     //** User email and id are the same thing */
     if (!$user_id && isset($user_email)) {
         $user_id = $user_email;
     }
     //** If nothing is set, nothing we can do */
     if (!isset($user_id)) {
         return;
     }
     $query_invoices = new WP_Query(array('post_type' => 'wpi_object', 'post_status' => $status, 'meta_query' => array(array('key' => 'user_email', 'value' => $user_id), array('key' => 'type', 'value' => $type)), 'posts_per_page' => -1));
     //** Nothing found */
     if (empty($query_invoices->posts)) {
         return array();
     }
     $return = array();
     foreach ($query_invoices->posts as $_post) {
         $invoice_id = wpi_post_id_to_invoice_id($_post->ID);
         $this_invoice = new WPI_Invoice();
         $this_invoice->load_invoice("id={$invoice_id}");
         $return[] = $this_invoice;
     }
     return $return;
 }