Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Admin/API/Reports/Orders
File: DataStore.php
THEN variation_id
[500] Fix | Delete
ELSE product_id
[501] Fix | Delete
END
[502] Fix | Delete
)
[503] Fix | Delete
WHERE order_id IN ({$included_order_ids})
[504] Fix | Delete
AND product_qty > 0
[505] Fix | Delete
",
[506] Fix | Delete
ARRAY_A
[507] Fix | Delete
);
[508] Fix | Delete
/* phpcs:enable */
[509] Fix | Delete
[510] Fix | Delete
return $products;
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
/**
[514] Fix | Delete
* Get customer data from Order data.
[515] Fix | Delete
*
[516] Fix | Delete
* @param array $orders Array of orders data.
[517] Fix | Delete
* @return array
[518] Fix | Delete
*/
[519] Fix | Delete
protected function get_customers_by_orders( $orders ) {
[520] Fix | Delete
global $wpdb;
[521] Fix | Delete
[522] Fix | Delete
$customer_lookup_table = $wpdb->prefix . 'wc_customer_lookup';
[523] Fix | Delete
$customer_ids = array();
[524] Fix | Delete
[525] Fix | Delete
foreach ( $orders as $order ) {
[526] Fix | Delete
if ( $order['customer_id'] ) {
[527] Fix | Delete
$customer_ids[] = intval( $order['customer_id'] );
[528] Fix | Delete
}
[529] Fix | Delete
}
[530] Fix | Delete
[531] Fix | Delete
if ( empty( $customer_ids ) ) {
[532] Fix | Delete
return array();
[533] Fix | Delete
}
[534] Fix | Delete
[535] Fix | Delete
/* phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared */
[536] Fix | Delete
$customer_ids = implode( ',', $customer_ids );
[537] Fix | Delete
$customers = $wpdb->get_results(
[538] Fix | Delete
"SELECT * FROM {$customer_lookup_table} WHERE customer_id IN ({$customer_ids})",
[539] Fix | Delete
ARRAY_A
[540] Fix | Delete
);
[541] Fix | Delete
/* phpcs:enable */
[542] Fix | Delete
[543] Fix | Delete
return $customers;
[544] Fix | Delete
}
[545] Fix | Delete
[546] Fix | Delete
/**
[547] Fix | Delete
* Get coupon information from order IDs.
[548] Fix | Delete
*
[549] Fix | Delete
* @param array $order_ids Array of order IDs.
[550] Fix | Delete
* @return array
[551] Fix | Delete
*/
[552] Fix | Delete
protected function get_coupons_by_order_ids( $order_ids ) {
[553] Fix | Delete
global $wpdb;
[554] Fix | Delete
$order_coupon_lookup_table = $wpdb->prefix . 'wc_order_coupon_lookup';
[555] Fix | Delete
$included_order_ids = implode( ',', $order_ids );
[556] Fix | Delete
[557] Fix | Delete
/* phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared */
[558] Fix | Delete
$coupons = $wpdb->get_results(
[559] Fix | Delete
"SELECT order_id, coupon_id, post_title as coupon_code
[560] Fix | Delete
FROM {$wpdb->posts}
[561] Fix | Delete
JOIN {$order_coupon_lookup_table} ON {$order_coupon_lookup_table}.coupon_id = {$wpdb->posts}.ID
[562] Fix | Delete
WHERE
[563] Fix | Delete
order_id IN ({$included_order_ids})
[564] Fix | Delete
",
[565] Fix | Delete
ARRAY_A
[566] Fix | Delete
);
[567] Fix | Delete
/* phpcs:enable */
[568] Fix | Delete
[569] Fix | Delete
return $coupons;
[570] Fix | Delete
}
[571] Fix | Delete
[572] Fix | Delete
/**
[573] Fix | Delete
* Get order attributions data from order IDs.
[574] Fix | Delete
*
[575] Fix | Delete
* @param array $order_ids Array of order IDs.
[576] Fix | Delete
* @return array
[577] Fix | Delete
*/
[578] Fix | Delete
protected function get_order_attributions_by_order_ids( $order_ids ) {
[579] Fix | Delete
global $wpdb;
[580] Fix | Delete
$order_meta_table = OrdersTableDataStore::get_meta_table_name();
[581] Fix | Delete
$included_order_ids = implode( ',', array_map( 'absint', $order_ids ) );
[582] Fix | Delete
[583] Fix | Delete
if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
[584] Fix | Delete
/* phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared */
[585] Fix | Delete
$order_attributions_meta = $wpdb->get_results(
[586] Fix | Delete
"SELECT order_id, meta_key, meta_value
[587] Fix | Delete
FROM $order_meta_table
[588] Fix | Delete
WHERE order_id IN ({$included_order_ids})
[589] Fix | Delete
AND meta_key IN ( '_wc_order_attribution_source_type', '_wc_order_attribution_utm_source' )
[590] Fix | Delete
",
[591] Fix | Delete
ARRAY_A
[592] Fix | Delete
);
[593] Fix | Delete
/* phpcs:enable */
[594] Fix | Delete
} else {
[595] Fix | Delete
/* phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared */
[596] Fix | Delete
$order_attributions_meta = $wpdb->get_results(
[597] Fix | Delete
"SELECT post_id as order_id, meta_key, meta_value
[598] Fix | Delete
FROM $wpdb->postmeta
[599] Fix | Delete
WHERE post_id IN ({$included_order_ids})
[600] Fix | Delete
AND meta_key IN ( '_wc_order_attribution_source_type', '_wc_order_attribution_utm_source' )
[601] Fix | Delete
",
[602] Fix | Delete
ARRAY_A
[603] Fix | Delete
);
[604] Fix | Delete
/* phpcs:enable */
[605] Fix | Delete
}
[606] Fix | Delete
[607] Fix | Delete
$order_attributions = array();
[608] Fix | Delete
foreach ( $order_attributions_meta as $meta ) {
[609] Fix | Delete
if ( ! isset( $order_attributions[ $meta['order_id'] ] ) ) {
[610] Fix | Delete
$order_attributions[ $meta['order_id'] ] = array();
[611] Fix | Delete
}
[612] Fix | Delete
$order_attributions[ $meta['order_id'] ][ $meta['meta_key'] ] = $meta['meta_value'];
[613] Fix | Delete
}
[614] Fix | Delete
[615] Fix | Delete
return $order_attributions;
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
/**
[619] Fix | Delete
* Get all statuses that have been synced.
[620] Fix | Delete
*
[621] Fix | Delete
* @return string[] Unique order statuses.
[622] Fix | Delete
*/
[623] Fix | Delete
public static function get_all_statuses() {
[624] Fix | Delete
global $wpdb;
[625] Fix | Delete
[626] Fix | Delete
$statuses = wp_cache_get( self::ORDERS_STATUSES_ALL_CACHE_KEY, 'woocommerce_analytics' );
[627] Fix | Delete
if ( false === $statuses ) {
[628] Fix | Delete
$table_name = self::get_db_table_name();
[629] Fix | Delete
$statuses = $wpdb->get_col( $wpdb->prepare( 'SELECT DISTINCT status FROM %i', $table_name ) );
[630] Fix | Delete
wp_cache_set( self::ORDERS_STATUSES_ALL_CACHE_KEY, $statuses, 'woocommerce_analytics', YEAR_IN_SECONDS );
[631] Fix | Delete
}
[632] Fix | Delete
[633] Fix | Delete
return $statuses;
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
/**
[637] Fix | Delete
* Ensure the order status will present in `get_all_statuses` call result.
[638] Fix | Delete
*
[639] Fix | Delete
* @internal
[640] Fix | Delete
* @param int $order_id Order ID.
[641] Fix | Delete
* @return void
[642] Fix | Delete
*/
[643] Fix | Delete
public static function maybe_update_order_statuses_cache( $order_id ) {
[644] Fix | Delete
$order = wc_get_order( $order_id );
[645] Fix | Delete
if ( $order ) {
[646] Fix | Delete
$status = self::normalize_order_status( $order->get_status() );
[647] Fix | Delete
$statuses = self::get_all_statuses();
[648] Fix | Delete
if ( ! in_array( $status, $statuses, true ) ) {
[649] Fix | Delete
$statuses[] = $status;
[650] Fix | Delete
wp_cache_set( self::ORDERS_STATUSES_ALL_CACHE_KEY, $statuses, 'woocommerce_analytics', YEAR_IN_SECONDS );
[651] Fix | Delete
}
[652] Fix | Delete
}
[653] Fix | Delete
}
[654] Fix | Delete
[655] Fix | Delete
/**
[656] Fix | Delete
* Ensure the order status will present in `get_all_statuses` call result.
[657] Fix | Delete
*
[658] Fix | Delete
* @deprecated 10.3.0 Use maybe_update_order_statuses_cache().
[659] Fix | Delete
* @param int $order_id Order ID.
[660] Fix | Delete
* @return void
[661] Fix | Delete
*/
[662] Fix | Delete
public static function maybe_update_order_statuses_transient( $order_id ) {
[663] Fix | Delete
wc_deprecated_function( __METHOD__, '10.3.0', __CLASS__ . '::maybe_update_order_statuses_cache()' );
[664] Fix | Delete
self::maybe_update_order_statuses_cache( $order_id );
[665] Fix | Delete
}
[666] Fix | Delete
[667] Fix | Delete
/**
[668] Fix | Delete
* Initialize query objects.
[669] Fix | Delete
*/
[670] Fix | Delete
protected function initialize_queries() {
[671] Fix | Delete
$this->clear_all_clauses();
[672] Fix | Delete
$this->subquery = new SqlQuery( $this->context . '_subquery' );
[673] Fix | Delete
$this->subquery->add_sql_clause( 'select', self::get_db_table_name() . '.order_id' );
[674] Fix | Delete
$this->subquery->add_sql_clause( 'from', self::get_db_table_name() );
[675] Fix | Delete
}
[676] Fix | Delete
}
[677] Fix | Delete
[678] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function