PATH:
home
/
letacommog
/
pymreception1
/
wp-content
/
plugins
/
wc-frontend-manager
/
controllers
/
orders
<?php /** * WCFM plugin controllers * * Plugin WC Product Vendors Orders Controller * * @author WC Lovers * @package wcfm/controllers * @version 2.1.0 */ class WCFM_Orders_WCPVendors_Controller { private $vendor_id; private $vendor_data; public function __construct() { global $WCFM; $this->vendor_id = apply_filters( 'wcfm_current_vendor_id', WC_Product_Vendors_Utils::get_logged_in_vendor() ); $this->vendor_data = WC_Product_Vendors_Utils::get_vendor_data_from_user(); $this->processing(); } public function processing() { global $WCFM, $wpdb, $_POST, $start_date, $end_date; $length = $_POST['length']; $offset = $_POST['start']; $user_id = $this->vendor_id; $can_view_orders = apply_filters( 'wcfm_is_allow_order_details', true ); $group_manager_filter = apply_filters( 'wcfm_orders_group_manager_filter', '', 'vendor_id' ); $the_orderby = ! empty( $_POST['orderby'] ) ? sanitize_text_field( $_POST['orderby'] ) : 'order_id'; $the_order = ( ! empty( $_POST['order'] ) && 'asc' === $_POST['order'] ) ? 'ASC' : 'DESC'; $items_per_page = $length; $sql = 'SELECT COUNT(commission.id) FROM ' . WC_PRODUCT_VENDORS_COMMISSION_TABLE . ' AS commission'; $sql .= ' WHERE 1=1'; if( $group_manager_filter ) { $sql .= $group_manager_filter; } else { $sql .= " AND `vendor_id` = {$this->vendor_id}"; } // check if it is a search if ( ! empty( $_POST['search']['value'] ) ) { $order_id = absint( $_POST['search']['value'] ); if( function_exists( 'wc_sequential_order_numbers' ) ) { $order_id = wc_sequential_order_numbers()->find_order_by_order_number( $order_id ); } $sql .= " AND `order_id` = {$order_id}"; } else { if ( ! empty( $_POST['filter_date_form'] ) && ! empty( $_POST['filter_date_to'] ) ) { $start_date = date( 'Y-m-d', strtotime( $_POST['filter_date_form'] ) ); $end_date = date( 'Y-m-d', strtotime( $_POST['filter_date_to'] ) ); $time_filter = " AND DATE( commission.order_date ) BETWEEN '" . $start_date . "' AND '" . $end_date . "'"; $sql .= $time_filter; } if ( ! empty( $_POST['commission_status'] ) ) { $commission_status = esc_sql( $_POST['commission_status'] ); $status_filter = " AND `commission_status` = '{$commission_status}'"; $sql .= $status_filter; } } $total_items = $wpdb->get_var( $sql ); if( !$total_items ) $total_items = 0; $sql = 'SELECT * FROM ' . WC_PRODUCT_VENDORS_COMMISSION_TABLE . ' AS commission'; $sql .= ' WHERE 1=1'; if( $group_manager_filter ) { $sql .= $group_manager_filter; } else { $sql .= " AND `vendor_id` = {$this->vendor_id}"; } // check if it is a search if ( ! empty( $_POST['search']['value'] ) ) { $order_id = absint( $_POST['search']['value'] ); if( function_exists( 'wc_sequential_order_numbers' ) ) { $order_id = wc_sequential_order_numbers()->find_order_by_order_number( $order_id ); } $sql .= " AND `order_id` = {$order_id}"; } else { if ( ! empty( $_POST['filter_date_form'] ) && ! empty( $_POST['filter_date_to'] ) ) { $sql .= $time_filter; } if ( ! empty( $_POST['commission_status'] ) ) { $sql .= $status_filter; } } $sql .= " ORDER BY `{$the_orderby}` {$the_order}"; $sql .= " LIMIT {$items_per_page}"; $sql .= " OFFSET {$offset}"; $data = $wpdb->get_results( $sql ); $the_order_summary = $data; // Generate Products JSON $wcfm_orders_json = ''; $wcfm_orders_json = '{ "draw": ' . $_POST['draw'] . ', "recordsTotal": ' . (double) $total_items . ', "recordsFiltered": ' . (double) $total_items . ', "data": '; if ( !empty( $the_order_summary ) ) { $index = 0; $totals = 0; $wcfm_orders_json_arr = array(); foreach ( $the_order_summary as $order ) { // Order exists check $order_post_title = get_the_title( $order->order_id ); if( !$order_post_title ) continue; $the_order = wc_get_order( $order->order_id ); if( !is_a( $the_order, 'WC_Order' ) ) continue; $order_currency = $the_order->get_currency(); $needs_shipping = false; // Status $wcfm_orders_json_arr[$index][] = apply_filters( 'wcfm_order_status_display', '<span class="order-status tips wcicon-status-' . sanitize_title( $the_order->get_status() ) . ' text_tip" data-tip="' . wc_get_order_status_name( $the_order->get_status() ) . '"></span>', $the_order ); // Custom Column Support After $wcfm_orders_json_arr = apply_filters( 'wcfm_orders_custom_columns_data_after', $wcfm_orders_json_arr, $index, $order->ID, $order, $the_order ); // Order if( apply_filters( 'wcfm_allow_view_customer_name', true ) ) { $user_info = array(); if ( $the_order->get_user_id() ) { $user_info = get_userdata( $the_order->get_user_id() ); } if ( ! empty( $user_info ) ) { $username = ''; if ( $user_info->first_name || $user_info->last_name ) { $username .= esc_html( sprintf( _x( '%1$s %2$s', 'full name', 'wc-frontend-manager' ), ucfirst( $user_info->first_name ), ucfirst( $user_info->last_name ) ) ); } else { $username .= esc_html( ucfirst( $user_info->display_name ) ); } } else { if ( $the_order->get_billing_first_name() || $the_order->get_billing_last_name() ) { $username = trim( sprintf( _x( '%1$s %2$s', 'full name', 'wc-frontend-manager' ), $the_order->get_billing_first_name(), $the_order->get_billing_last_name() ) ); } else if ( $the_order->get_billing_company() ) { $username = trim( $the_order->get_billing_company() ); } else { $username = __( 'Guest', 'wc-frontend-manager' ); } } $username = apply_filters( 'wcfm_order_by_user', $username, $the_order->get_id() ); } else { $username = __( 'Guest', 'wc-frontend-manager' ); } if( $can_view_orders ) $wcfm_orders_json_arr[$index][] = '<a href="' . get_wcfm_view_order_url($the_order->get_id(), $the_order) . '" class="wcfm_order_title">#' . esc_attr( $the_order->get_order_number() ) . '</a>' . ' ' . __( 'by', 'wc-frontend-manager' ) . ' ' . $username; else $wcfm_orders_json_arr[$index][] = '#' . esc_attr( $the_order->get_order_number() ) . ' ' . __( 'by', 'wc-frontend-manager' ) . ' ' . $username; // Purchased $the_order_item_details = '<div class="order_items" cellspacing="0">'; $quantity = absint( $order->product_quantity ); $var_attributes = ''; $sku = ''; // check if product is a variable product if ( ! empty( $order->variation_id ) ) { $product = wc_get_product( absint( $order->variation_id ) ); $the_order_item = WC_Order_Factory::get_order_item( $order->order_item_id ); if ( $metadata = $the_order_item->get_formatted_meta_data() ) { foreach ( $metadata as $meta_id => $meta ) { // Skip hidden core fields if ( in_array( $meta->key, apply_filters( 'wcpv_hidden_order_itemmeta', array( '_qty', '_tax_class', '_product_id', '_variation_id', '_line_subtotal', '_line_subtotal_tax', '_line_total', '_line_tax', '_fulfillment_status', '_commission_status', 'method_id', 'cost', ) ) ) ) { continue; } $var_attributes .= sprintf( __( '<br /><small>( %1$s: %2$s )</small>', 'woocommerce-product-vendors' ), wp_kses_post( rawurldecode( $meta->display_key ) ), wp_kses_post( $meta->value ) ); } } } else { $product = wc_get_product( absint( $order->product_id ) ); } if ( is_object( $product ) && $product->get_sku() ) { $sku = sprintf( __( '%1$s %2$s: %3$s', 'woocommerce-product-vendors' ), '<br />', 'SKU', $product->get_sku() ); } if ( is_object( $product ) ) { $the_order_item_details .= '<div>' . $quantity . 'x ' . sanitize_text_field( $order->product_name ) . $var_attributes . $sku . '</div>'; } elseif ( ! empty( $order->product_name ) ) { $the_order_item_details .= '<div>' . $quantity . 'x ' . sanitize_text_field( $order->product_name ) . '</div>'; } else { $the_order_item_details .= '<div>' . sprintf( '%s ' . __( 'Product Not Found', 'woocommerce-product-vendors' ), '#' . absint( $order->product_id ) ) . '</div>'; } $the_order_item_details .= '</div>'; $wcfm_orders_json_arr[$index][] = '<a href="#" class="show_order_items">' . sprintf( _n( '%d item', '%d items', $quantity, 'wc-frontend-manager' ), $quantity ) . '</a>' . $the_order_item_details; // Quantity $wcfm_orders_json_arr[$index][] = $quantity; // Billing Address $billing_address = '–'; if( apply_filters( 'wcfm_allow_customer_billing_details', true ) ) { if ( $the_order->get_formatted_billing_address() ) { $billing_address = wp_kses( $the_order->get_formatted_billing_address(), array( 'br' => array() ) ); } } $wcfm_orders_json_arr[$index][] = "<div style='text-align:left;float:left'>" . $billing_address . "</div>"; // Shipping Address $shipping_address = '–'; if( apply_filters( 'wcfm_allow_customer_shipping_details', true ) ) { if ( $the_order->get_formatted_shipping_address() ) { $shipping_address = wp_kses( $the_order->get_formatted_shipping_address(), array( 'br' => array() ) ); } } $wcfm_orders_json_arr[$index][] = "<div style='text-align:left;float:left'>" . $shipping_address . "</div>"; // Gross Sales $gross_sales = 0; $gross_sales = $order->product_amount + $order->product_shipping_amount + $order->product_shipping_tax_amount + $order->product_tax_amount; $wcfm_orders_json_arr[$index][] = wc_price( $gross_sales, array( 'currency' => $order_currency ) ); // Gross Sales Amount $wcfm_orders_json_arr[$index][] = $gross_sales; // Commission $status = __( 'N/A', 'woocommerce-product-vendors' ); if ( 'unpaid' === $order->commission_status ) { $status = '<span class="wcpv-unpaid-status">' . esc_html__( 'UNPAID', 'woocommerce-product-vendors' ) . '</span>'; } if ( 'paid' === $order->commission_status ) { $status = '<span class="wcpv-paid-status">' . esc_html__( 'PAID', 'woocommerce-product-vendors' ) . '</span>'; } if ( 'void' === $order->commission_status ) { $status = '<span class="wcpv-void-status">' . esc_html__( 'VOID', 'woocommerce-product-vendors' ) . '</span>'; } $wcfm_orders_json_arr[$index][] = apply_filters( 'wcfm_vendor_order_total', wc_price( sanitize_text_field( $order->total_commission_amount ), array( 'currency' => $order_currency ) ) . '<br />' . $status, $order->order_id, $order->product_id, $order->total_commission_amount, $status ); // Commission Amount $wcfm_orders_json_arr[$index][] = $order->total_commission_amount; // Additional Info $wcfm_orders_json_arr[$index][] = apply_filters( 'wcfm_orders_additonal_data', '–', $the_order->get_id() ); // Custom Column Support Before $wcfm_orders_json_arr = apply_filters( 'wcfm_orders_custom_columns_data_before', $wcfm_orders_json_arr, $index, $order->ID, $order, $the_order ); // Date $order_date = ( version_compare( WC_VERSION, '2.7', '<' ) ) ? $the_order->order_date : $the_order->get_date_created(); $wcfm_orders_json_arr[$index][] = date_i18n( wc_date_format(), strtotime( $order_date ) ); // Action $actions = ''; if( $wcfm_is_allow_order_status_update = apply_filters( 'wcfm_is_allow_order_status_update', true ) ) { $order_status = sanitize_title( $the_order->get_status() ); if( !in_array( $order_status, array( 'failed', 'cancelled', 'refunded', 'completed' ) ) ) $actions = '<a class="wcfm_order_mark_complete wcfm-action-icon" href="#" data-orderid="' . $order->order_id . '"><span class="wcfmfa fa-check-circle text_tip" data-tip="' . esc_attr__( 'Mark as Complete', 'wc-frontend-manager' ) . '"></span></a>'; } if( $can_view_orders ) $actions .= '<a class="wcfm-action-icon" href="' . get_wcfm_view_order_url($the_order->get_id(), $the_order) . '"><span class="wcfmfa fa-eye text_tip" data-tip="' . esc_attr__( 'View Details', 'wc-frontend-manager' ) . '"></span></a>'; if( !WCFM_Dependencies::wcfmu_plugin_active_check() ) { if( $is_wcfmu_inactive_notice_show = apply_filters( 'is_wcfmu_inactive_notice_show', true) ) { $actions .= '<a class="wcfm_wcvendors_order_mark_shipped_dummy wcfm-action-icon" href="#" data-orderid="' . $the_order->get_id() . '"><span class="wcfmfa fa-truck text_tip" data-tip="' . esc_attr__( 'Mark Shipped', 'wc-frontend-manager' ) . '"></span></a>'; } } $actions = apply_filters ( 'wcfm_orders_module_actions', $actions, $the_order->get_id(), $the_order ); $wcfm_orders_json_arr[$index][] = apply_filters ( 'wcpvendors_orders_actions', $actions, $user_id, $the_order, $order ); $index++; } } if( !empty($wcfm_orders_json_arr) ) $wcfm_orders_json .= json_encode($wcfm_orders_json_arr); else $wcfm_orders_json .= '[]'; $wcfm_orders_json .= ' }'; echo $wcfm_orders_json; } }
[+]
..
[-] wcfm-controller-orders.php
[edit]
[-] wcfm-controller-wcfmmarketplace-orders.php
[edit]
[-] wcfm-controller-wcfmmarketplace-itemized-orders.php
[edit]
[-] wcfm-controller-wcpvendors-orders.php
[edit]
[-] wcfm-controller-wcvendors-orders.php
[edit]
[-] wcfm-controller-dokan-orders.php
[edit]
[-] wcfm-controller-wcmarketplace-orders.php
[edit]