function wppizza_custom_order_status() { $orderStatus = wppizza_order_status_default('keys'); /**allow filtering**/ $orderStatus = apply_filters('wppizza_filter_order_status', $orderStatus); $setOrderStatus = array(); foreach ($orderStatus as $oStatus) { $setOrderStatus[] = wppizza_validate_alpha_only(str_replace(" ", "_", strtoupper($oStatus))); } $newOrderStatus = array_unique($setOrderStatus); return $newOrderStatus; }
} else { $allOrdersQuery = "SELECT * FROM " . $wpdb->prefix . $this->pluginOrderTable . " WHERE payment_status IN (" . $inStatus . ") " . $orderstatus . " ORDER BY id DESC " . $limit . " "; $allOrders = $wpdb->get_results($allOrdersQuery); } /**************************************************** * * check if there are orders and if so do loop * ***************************************************/ /******************** if we have orders ********************/ if (is_array($allOrders) && count($allOrders) > 0) { /*get any -perhaps filtered - customised order status */ $customOrderStatus = wppizza_custom_order_status(); $customOrderStatusGetTxt = wppizza_order_status_default(); /*admin only notice if able to delete order*/ if (current_user_can('wppizza_cap_delete_order')) { $output['notice_delete'] = "<div>" . __('Note: deleting an order will <b>ONLY</b> delete it from the database table. It will <b>NOT</b> issue any refunds, cancel the order, send emails etc.', $this->pluginLocale) . "</div>"; } /*notice regarding status change*/ $output['notice_info'] = "<div style='color:red'>" . __('"Status" is solely for your internal reference. Updating/changing the value will have no other effects but might help you to identify which orders have not been processed.', $this->pluginLocale) . "</div>"; /******************************************************************************************** * * [TABLE OPEN] * ********************************************************************************************/ $output['table_open'] = "<table>"; /**************************************************************************** [header row] ****************************************************************************/
<?php if (!defined('ABSPATH')) { exit; } /*Exit if accessed directly*/ /**get previously saved options**/ $options = $this->pluginOptions; /**lets not forget static, uneditable options **/ $options['plugin_data']['version'] = $this->pluginVersion; $options['plugin_data']['nag_notice'] = isset($input['plugin_data']['nag_notice']) ? $input['plugin_data']['nag_notice'] : $options['plugin_data']['nag_notice']; $options['plugin_data']['db_order_status_options'] = !empty($input['plugin_data']['db_order_status_options']) ? $input['plugin_data']['db_order_status_options'] : wppizza_order_status_default('keys'); /**schedule cron**/ if (isset($input['cron'])) { $options['cron']['days_delete'] = !empty($input['cron']['days_delete']) ? max(1, $input['cron']['days_delete']) : 7; $options['cron']['failed_delete'] = !empty($input['cron']['failed_delete']) ? true : false; $cronSchedule = ''; if (isset($input['cron']['schedule']) && in_array($input['cron']['schedule'], array('hourly', 'daily'))) { $cronSchedule = $input['cron']['schedule']; } $options['cron']['schedule'] = $cronSchedule; /*schedule or remove cron **/ $this->wppizza_cron_setup_schedule($options['cron']); } /**validate global settings***/ if (isset($_POST['' . $this->pluginSlug . '_global'])) { /**submitted options -> validate***/ $options['plugin_data']['js_in_footer'] = !empty($input['plugin_data']['js_in_footer']) ? true : false; $options['plugin_data']['admin_order_history_max_results'] = wppizza_validate_int_only($input['plugin_data']['admin_order_history_max_results']); $options['plugin_data']['admin_order_history_include_failed'] = !empty($input['plugin_data']['admin_order_history_include_failed']) ? true : false; $options['plugin_data']['admin_order_history_polling_time'] = wppizza_validate_int_only($input['plugin_data']['admin_order_history_polling_time']);