/** ************************************************************************ * 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))); }
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'); } } } }
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; }
public function updateEbayOrders($days = false, $order_ids = false) { $m = new EbayOrdersModel(); $m->updateOrders($this->session, $days, 1, $order_ids); return $m; }