Beispiel #1
0
 /** ************************************************************************
  * REQUIRED! This is where you prepare your data for display. This method will
  * usually be used to query the database, sort and filter the data, and generally
  * get it ready to be displayed. At a minimum, we should set $this->items and
  * $this->set_pagination_args(), although the following properties and methods
  * are frequently interacted with here...
  * 
  * @uses $this->_column_headers
  * @uses $this->items
  * @uses $this->get_columns()
  * @uses $this->get_sortable_columns()
  * @uses $this->get_pagenum()
  * @uses $this->set_pagination_args()
  **************************************************************************/
 function prepare_items()
 {
     // process bulk actions
     $this->process_bulk_action();
     // get pagination state
     $current_page = $this->get_pagenum();
     $per_page = $this->get_items_per_page('orders_per_page', 20);
     // regard max table rows limit
     if ($max_per_page = get_option('wplister_force_table_items_limit')) {
         $per_page = min($per_page, $max_per_page);
     }
     // define columns
     $this->_column_headers = $this->get_column_info();
     // fetch profiles from model
     $ordersModel = new EbayOrdersModel();
     $this->items = $ordersModel->getPageItems($current_page, $per_page);
     $total_items = $ordersModel->total_items;
     // register our pagination options & calculations.
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
Beispiel #2
0
 public function showOrderDetails($id)
 {
     // init model
     $ordersModel = new EbayOrdersModel();
     // get ebay_order record
     $ebay_order = $ordersModel->getItem($id);
     // get WooCommerce order
     $wc_order_notes = $ebay_order['post_id'] ? $this->get_order_notes($ebay_order['post_id']) : false;
     $aData = array('ebay_order' => $ebay_order, 'wc_order_notes' => $wc_order_notes);
     $this->display('order_details', $aData);
 }
 function wplister_woocommerce_admin_order_filter_query($query)
 {
     global $typenow, $wp_query, $wpdb;
     if ($typenow == 'shop_order') {
         // filter by ebay status
         if (!empty($_GET['is_from_ebay'])) {
             if ($_GET['is_from_ebay'] == 'yes') {
                 $account_id = isset($_REQUEST['wple_account_id']) ? $_REQUEST['wple_account_id'] : false;
                 if ($account_id) {
                     // find post_ids for all orders for this account
                     $post_ids = array();
                     $orders = EbayOrdersModel::getWhere('account_id', $account_id);
                     foreach ($orders as $order) {
                         if (!$order->post_id) {
                             continue;
                         }
                         $post_ids[] = $order->post_id;
                     }
                     if (empty($post_ids)) {
                         $post_ids = array('0');
                     }
                     $query->query_vars['post__in'] = $post_ids;
                 } else {
                     $query->query_vars['meta_query'][] = array('key' => '_ebay_order_id', 'compare' => 'EXISTS');
                 }
             } elseif ($_GET['is_from_ebay'] == 'no') {
                 $query->query_vars['meta_query'][] = array('key' => '_ebay_order_id', 'compare' => 'NOT EXISTS');
             }
         }
     }
 }
Beispiel #4
0
 public function checkTransactions($show_message = false)
 {
     $om = new EbayOrdersModel();
     $tm = new TransactionsModel();
     $orders = $om->getAll();
     // echo "<pre>";print_r($orders);echo"</pre>";#die();
     $created_transactions = 0;
     $pending_orders = 0;
     // loop orders
     foreach ($orders as $order) {
         $order_details = $om->decodeObject($order['details'], false, true);
         // echo "<pre>";print_r($order_details);echo"</pre>";#die();
         // skip if this order has been processed already
         if ($tm->getTransactionByEbayOrderID($order['order_id'])) {
             continue;
         }
         // limit processing to 500 orders at a time
         if ($created_transactions >= 500) {
             $pending_orders++;
             continue;
         }
         // loop transactions
         $transactions = $order_details->TransactionArray;
         foreach ($transactions as $Transaction) {
             // echo "<pre>";print_r($Transaction->TransactionID);echo"</pre>";#die();
             // $transaction_id = $Transaction->TransactionID;
             // create transaction
             $txn_id = $tm->createTransactionFromEbayOrder($order, $Transaction);
             // echo "<pre>created transaction ";print_r($Transaction->TransactionID);echo"</pre>";#die();
             $created_transactions++;
         }
     }
     $msg = $created_transactions . ' transactions were created.<br><br>';
     if ($pending_orders) {
         $msg .= 'There are ' . $pending_orders . ' more orders to process. Please run this check again until all orders have been processed.';
     } else {
         $msg .= 'Please visit the <a href="admin.php?page=wplister-transactions">Transactions</a> page to check for duplicates.';
     }
     if ($show_message) {
         $this->showMessage($msg);
     }
     // return number of orders which still need to be processed
     return $pending_orders;
 }
Beispiel #5
0
 public function updateEbayOrders($days = false, $order_ids = false)
 {
     $m = new EbayOrdersModel();
     $m->updateOrders($this->session, $days, 1, $order_ids);
     return $m;
 }