File manager - Edit - /home/buyherba/purecannabishub.com/wp-content/plugins/booster-plus-for-woocommerce/includes/export/class-wcj-exporter-customers.php
Back
<?php /** * Booster for WooCommerce Exporter Customers * * @version 7.1.4 * @since 1.0.0 * @author Pluggabl LLC. * @package Booster_Plus_For_WooCommerce/includes */ if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'WCJ_Exporter_Customers' ) ) : /** * WCJ_Exporter_Customers. * * @version 6.0.0 * @since 2.5.9 */ class WCJ_Exporter_Customers { /** * Constructor. * * @version 6.0.0 * @since 1.0.0 */ public function __construct() { return true; } /** * Export_customers. * * @version 6.0.0 * @since 1.0.0 * @param array $fields_helper defines the fields. */ public function export_customers( $fields_helper ) { // Standard Fields. $all_fields = $fields_helper->get_customer_export_fields(); $fields_ids = wcj_get_option( 'wcj_export_customers_fields', $fields_helper->get_customer_export_default_fields_ids() ); $titles = array(); foreach ( $fields_ids as $field_id ) { $titles[] = $all_fields[ $field_id ]; } // Get the Data. $data = array(); $data[] = $titles; $args = array( 'role' => 'customer' ); $args = wcj_maybe_add_date_query( $args ); $customers = get_users( $args ); foreach ( $customers as $customer ) { $row = array(); foreach ( $fields_ids as $field_id ) { switch ( $field_id ) { case 'customer-id': $row[] = $customer->ID; break; case 'customer-email': $row[] = $customer->user_email; break; case 'customer-login': $row[] = $customer->user_login; break; case 'customer-nicename': $row[] = $customer->user_nicename; break; case 'customer-url': $row[] = $customer->user_url; break; case 'customer-registered': $row[] = $customer->user_registered; break; case 'customer-display-name': $row[] = $customer->display_name; break; case 'customer-first-name': $row[] = $customer->first_name; break; case 'customer-last-name': $row[] = $customer->last_name; break; case 'customer-debug': $row[] = wp_json_encode( $customer ); break; } } $data[] = $row; } return $data; } /** * Export_customers_from_orders. * * @version 6.0.0 * @since 1.0.0 * @todo (maybe) add more order fields (shipping) * @param string | array $fields_helper defines the fields_helper. */ public function export_customers_from_orders( $fields_helper ) { // Standard Fields. $all_fields = $fields_helper->get_customer_from_order_export_fields(); $fields_ids = wcj_get_option( 'wcj_export_customers_from_orders_fields', $fields_helper->get_customer_from_order_export_default_fields_ids() ); $titles = array(); foreach ( $fields_ids as $field_id ) { $titles[] = $all_fields[ $field_id ]; } // Get the Data. $data = array(); $data[] = $titles; $total_customers = 0; $orders = array(); $offset = 0; $block_size = 1024; while ( true ) { $args_orders = array( 'post_type' => 'shop_order', 'post_status' => 'any', 'posts_per_page' => $block_size, 'orderby' => 'date', 'order' => 'DESC', 'offset' => $offset, 'fields' => 'ids', ); $args_orders = wcj_maybe_add_date_query( $args_orders ); $loop_orders = new WP_Query( $args_orders ); if ( ! $loop_orders->have_posts() ) { break; } foreach ( $loop_orders->posts as $order_id ) { $order = wc_get_order( $order_id ); $_billing_email = wcj_get_order_billing_email( $order ); if ( isset( $_billing_email ) && '' !== $_billing_email && ! in_array( $_billing_email, $orders, true ) ) { $emails_to_skip = array(); // `emails_to_skip` is not really used. if ( ! in_array( $_billing_email, $emails_to_skip, true ) ) { $total_customers++; $row = array(); foreach ( $fields_ids as $field_id ) { switch ( $field_id ) { case 'customer-nr': $row[] = $total_customers; break; case 'customer-billing-email': $row[] = $_billing_email; break; case 'customer-billing-first-name': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_first_name : $order->get_billing_first_name() ); break; case 'customer-billing-last-name': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_last_name : $order->get_billing_last_name() ); break; case 'customer-billing-company': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_company : $order->get_billing_company() ); break; case 'customer-billing-address-1': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_1 : $order->get_billing_address_1() ); break; case 'customer-billing-address-2': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_2 : $order->get_billing_address_2() ); break; case 'customer-billing-city': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_city : $order->get_billing_city() ); break; case 'customer-billing-state': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_state : $order->get_billing_state() ); break; case 'customer-billing-postcode': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_postcode : $order->get_billing_postcode() ); break; case 'customer-billing-country': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_country : $order->get_billing_country() ); break; case 'customer-billing-phone': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_phone : $order->get_billing_phone() ); break; case 'customer-last-order-date': $row[] = get_the_date( wcj_get_option( 'date_format' ), $order_id ); break; } } $data[] = $row; $orders[] = $_billing_email; } } } $offset += $block_size; } return $data; } /** * Export_customers_from_orders_hpos. * * @version 7.1.4 * @since 1.0.0 * @todo (maybe) add more order fields (shipping) * @param string | array $fields_helper defines the fields_helper. */ public function export_customers_from_orders_hpos( $fields_helper ) { // Standard Fields. $all_fields = $fields_helper->get_customer_from_order_export_fields(); $fields_ids = wcj_get_option( 'wcj_export_customers_from_orders_fields', $fields_helper->get_customer_from_order_export_default_fields_ids() ); $titles = array(); foreach ( $fields_ids as $field_id ) { $titles[] = $all_fields[ $field_id ]; } // Get the Data. $data = array(); $data[] = $titles; $total_customers = 0; $orders = array(); $offset = 0; $block_size = 1024; while ( true ) { $args_orders = array( 'type' => 'shop_order', 'status' => 'any', 'posts_per_page' => $block_size, 'orderby' => 'date', 'order' => 'DESC', 'offset' => $offset, 'fields' => 'ids', ); $args_orders = wcj_maybe_add_date_query( $args_orders ); $orders = wc_get_orders( $args_orders ); if ( ! $orders ) { break; } foreach ( $orders as $order ) { $order_id = $order->get_id(); $order = wc_get_order( $order_id ); $_billing_email = wcj_get_order_billing_email( $order ); if ( isset( $_billing_email ) && '' !== $_billing_email && ! in_array( $_billing_email, $orders, true ) ) { $emails_to_skip = array(); // `emails_to_skip` is not really used. if ( ! in_array( $_billing_email, $emails_to_skip, true ) ) { $total_customers++; $row = array(); foreach ( $fields_ids as $field_id ) { switch ( $field_id ) { case 'customer-nr': $row[] = $total_customers; break; case 'customer-billing-email': $row[] = $_billing_email; break; case 'customer-billing-first-name': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_first_name : $order->get_billing_first_name() ); break; case 'customer-billing-last-name': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_last_name : $order->get_billing_last_name() ); break; case 'customer-billing-company': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_company : $order->get_billing_company() ); break; case 'customer-billing-address-1': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_1 : $order->get_billing_address_1() ); break; case 'customer-billing-address-2': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_2 : $order->get_billing_address_2() ); break; case 'customer-billing-city': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_city : $order->get_billing_city() ); break; case 'customer-billing-state': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_state : $order->get_billing_state() ); break; case 'customer-billing-postcode': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_postcode : $order->get_billing_postcode() ); break; case 'customer-billing-country': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_country : $order->get_billing_country() ); break; case 'customer-billing-phone': $row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_phone : $order->get_billing_phone() ); break; case 'customer-last-order-date': $row[] = get_the_date( wcj_get_option( 'date_format' ), $order_id ); break; } } $data[] = $row; $orders[] = $_billing_email; } } } $offset += $block_size; } return $data; } } endif; return new WCJ_Exporter_Customers();
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.11 |
proxy
|
phpinfo
|
Settings