Changeset 3072514
- Timestamp:
- 04/17/2024 03:30:05 PM (2 years ago)
- Location:
- messageok
- Files:
-
- 31 added
- 4 edited
-
tags/2.0.6 (added)
-
tags/2.0.6/includes (added)
-
tags/2.0.6/includes/class.admin.php (added)
-
tags/2.0.6/includes/class.api.php (added)
-
tags/2.0.6/includes/class.inject.php (added)
-
tags/2.0.6/includes/class.install.php (added)
-
tags/2.0.6/includes/class.integrations.php (added)
-
tags/2.0.6/includes/class.shortcode.php (added)
-
tags/2.0.6/includes/class.storeinfo.php (added)
-
tags/2.0.6/includes/class.utils.php (added)
-
tags/2.0.6/languages (added)
-
tags/2.0.6/languages/messageok-cs_CZ.mo (added)
-
tags/2.0.6/languages/messageok-cs_CZ.po (added)
-
tags/2.0.6/languages/messageok-en_US.mo (added)
-
tags/2.0.6/languages/messageok-en_US.po (added)
-
tags/2.0.6/license.txt (added)
-
tags/2.0.6/messageok.php (added)
-
tags/2.0.6/readme.txt (added)
-
tags/2.0.6/static (added)
-
tags/2.0.6/static/css (added)
-
tags/2.0.6/static/css/msgok.css (added)
-
tags/2.0.6/static/images (added)
-
tags/2.0.6/static/images/logo.svg (added)
-
tags/2.0.6/static/js (added)
-
tags/2.0.6/static/js/msgok.js (added)
-
tags/2.0.6/uninstall.php (added)
-
tags/2.0.6/views (added)
-
tags/2.0.6/views/install.php (added)
-
tags/2.0.6/views/integrations.php (added)
-
tags/2.0.6/views/main.php (added)
-
tags/2.0.6/views/settings.php (added)
-
trunk/includes/class.api.php (modified) (6 diffs)
-
trunk/includes/class.integrations.php (modified) (2 diffs)
-
trunk/messageok.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
messageok/trunk/includes/class.api.php
r2978543 r3072514 2 2 3 3 namespace MsgOk; 4 5 use Automattic\WooCommerce\Utilities\OrderUtil; 4 6 5 7 class Api { … … 150 152 if ( !empty( $meta_keys ) ) 151 153 { 152 foreach ( $meta_keys as $meta_key ) 153 { 154 $found_value = get_post_meta( $order_id, $meta_key, TRUE ); 155 $return[$meta_key] = $found_value; 154 // HPOS 155 if ( OrderUtil::custom_orders_table_usage_is_enabled() ) 156 { 157 $order_object = wc_get_order( $order_id ); 158 159 if ( !$order_object ) return $return; 160 161 foreach ( $meta_keys as $meta_key ) 162 { 163 $found_value = $order_object->get_meta( $meta_key ); 164 $return[$meta_key] = $found_value; 165 } 166 } 167 else 168 { 169 foreach ( $meta_keys as $meta_key ) 170 { 171 $found_value = get_post_meta( $order_id, $meta_key, TRUE ); 172 $return[$meta_key] = $found_value; 173 } 156 174 } 157 175 } … … 172 190 if ( !empty( $meta_keys ) ) 173 191 { 174 foreach ( $meta_keys as $meta_key ) 175 { 176 $found_value = get_post_meta( $order_id, $meta_key, TRUE ); 177 $return[$meta_key] = $found_value; 192 // HPOS 193 if ( OrderUtil::custom_orders_table_usage_is_enabled() ) 194 { 195 $order_object = wc_get_order( $order_id ); 196 197 if ( !$order_object ) return $return; 198 199 foreach ( $meta_keys as $meta_key ) 200 { 201 $found_value = $order_object->get_meta( $meta_key ); 202 $return[$meta_key] = $found_value; 203 } 204 } 205 else 206 { 207 foreach ( $meta_keys as $meta_key ) 208 { 209 $found_value = get_post_meta( $order_id, $meta_key, TRUE ); 210 $return[$meta_key] = $found_value; 211 } 178 212 } 179 213 } … … 196 230 $order_id = esc_sql( sanitize_text_field( $order_id ) ); 197 231 198 global $wpdb; 199 $loaded_order_id = $wpdb->get_var( $wpdb->prepare( " 200 SELECT post_id 201 FROM {$wpdb->postmeta} 202 WHERE meta_key = %s 203 AND meta_value = %s 204 ", $meta_key, $order_id ) ); 232 // HPOS 233 if ( OrderUtil::custom_orders_table_usage_is_enabled() ) 234 { 235 global $wpdb; 236 $loaded_order_id = $wpdb->get_var( $wpdb->prepare( " 237 SELECT order_id 238 FROM {$wpdb->prefix}wc_orders_meta 239 WHERE meta_key = %s 240 AND meta_value = %s 241 ", $meta_key, $order_id ) ); 242 } 243 else 244 { 245 // Legacy (post type) storage 246 global $wpdb; 247 $loaded_order_id = $wpdb->get_var( $wpdb->prepare( " 248 SELECT post_id 249 FROM {$wpdb->postmeta} 250 WHERE meta_key = %s 251 AND meta_value = %s 252 ", $meta_key, $order_id ) ); 253 } 205 254 206 255 if ( !empty( $loaded_order_id ) ) … … 227 276 { 228 277 $meta = array(); 229 $loaded_metafields = get_post_meta( $order_id ); 230 231 if ( !empty( $loaded_metafields ) ) 232 { 233 foreach ( $loaded_metafields as $key => $val ) 234 { 235 $val = $val[0]; 236 237 if ( is_serialized( $val ) ) 238 { 239 $val = unserialize( $val ); 240 } 241 242 $meta[$key] = $val; 278 279 // HPOS 280 if ( OrderUtil::custom_orders_table_usage_is_enabled() ) 281 { 282 $order = wc_get_order( $order_id ); 283 $metadata = $order->get_meta_data(); 284 285 if ( !empty( $metadata ) ) 286 { 287 foreach ( $metadata as $meta_item ) 288 { 289 $val = $meta_item->value; 290 291 if ( is_serialized( $val ) ) 292 { 293 $val = unserialize( $val ); 294 } 295 296 $meta[$meta_item->key] = $val; 297 } 298 } 299 } 300 else 301 { 302 // Legacy (post type) storage 303 $loaded_metafields = get_post_meta( $order_id ); 304 305 if ( !empty( $loaded_metafields ) ) 306 { 307 foreach ( $loaded_metafields as $key => $val ) 308 { 309 $val = $val[0]; 310 311 if ( is_serialized( $val ) ) 312 { 313 $val = unserialize( $val ); 314 } 315 316 $meta[$key] = $val; 317 } 243 318 } 244 319 } … … 253 328 public function process_rest_api() 254 329 { 255 global $woocommerce , $post, $wpdb;330 global $woocommerce; 256 331 257 332 if ( isset( $_GET['ordernumber'] ) ) -
messageok/trunk/includes/class.integrations.php
r2978543 r3072514 2 2 3 3 namespace MsgOk; 4 5 use Automattic\WooCommerce\Utilities\OrderUtil; 4 6 5 7 class Integrations { … … 34 36 if ( function_exists( 'wc_get_order_statuses' ) ) 35 37 { 36 $last_orders = new \WP_Query( array( 37 'post_type' => 'shop_order', 38 'posts_per_page' => 50, 39 'post_status' => array_keys( wc_get_order_statuses() ), 40 'order' => 'DESC', 41 'orderby' => 'post_date', 42 'fields' => 'ids' 43 ) ); 44 45 if ( $last_orders->have_posts() ) 38 if ( OrderUtil::custom_orders_table_usage_is_enabled() ) 46 39 { 47 foreach ( $last_orders->posts as $post_id ) 40 $last_orders = wc_get_orders( array( 41 'posts_per_page' => 50, 42 'status' => array_keys( wc_get_order_statuses() ), 43 'order' => 'DESC', 44 'orderby' => 'date' 45 ) ); 46 47 if ( !empty( $last_orders ) ) 48 48 { 49 $post_meta_all = get_post_meta( $post_id ); 50 51 if ( !empty( $post_meta_all ) ) 49 foreach ( $last_orders as $order ) 52 50 { 53 foreach ( $post_meta_all as $post_meta_key => $post_meta ) 51 $post_meta_all_raw = $order->get_meta_data(); 52 53 if ( !empty( $post_meta_all_raw ) ) 54 54 { 55 $search_index = array_search( $post_meta_key, $meta_found ); 56 57 if ( !$search_index ) 55 $post_meta_all = []; 56 foreach ( $post_meta_all_raw as $post_meta_all_raw_item ) 58 57 { 59 $meta_found[$post_meta_key] = $post_meta[0]; 60 61 } else if ( empty( $meta_found[$search_index] ) && !empty( $post_meta[0] ) ) { 62 $meta_found[$post_meta_key] = $post_meta[0]; 58 $post_meta_all[$post_meta_all_raw_item->key] = $post_meta_all_raw_item->value; 59 } 60 61 foreach ( $post_meta_all as $post_meta_key => $post_meta ) 62 { 63 $search_index = array_search( $post_meta_key, $meta_found ); 64 65 if ( !$search_index ) 66 { 67 $meta_found[$post_meta_key] = $post_meta; 68 69 } else if ( empty( $meta_found[$search_index] ) && !empty( $post_meta[0] ) ) { 70 $meta_found[$post_meta_key] = $post_meta; 71 } 72 } 73 } 74 } 75 } 76 } 77 else 78 { 79 $last_orders = new \WP_Query( array( 80 'post_type' => 'shop_order', 81 'posts_per_page' => 50, 82 'post_status' => array_keys( wc_get_order_statuses() ), 83 'order' => 'DESC', 84 'orderby' => 'post_date', 85 'fields' => 'ids' 86 ) ); 87 88 if ( $last_orders->have_posts() ) 89 { 90 foreach ( $last_orders->posts as $post_id ) 91 { 92 $post_meta_all = get_post_meta( $post_id ); 93 94 if ( !empty( $post_meta_all ) ) 95 { 96 foreach ( $post_meta_all as $post_meta_key => $post_meta ) 97 { 98 $search_index = array_search( $post_meta_key, $meta_found ); 99 100 if ( !$search_index ) 101 { 102 $meta_found[$post_meta_key] = $post_meta[0]; 103 104 } else if ( empty( $meta_found[$search_index] ) && !empty( $post_meta[0] ) ) { 105 $meta_found[$post_meta_key] = $post_meta[0]; 106 } 63 107 } 64 108 } -
messageok/trunk/messageok.php
r3004824 r3072514 5 5 * Plugin URI: https://www.messageok.com/woocommerce 6 6 * Description: MessageOk plugin for WooCommerce 7 * Version: 2.0. 57 * Version: 2.0.6 8 8 * Author: MessageOk 9 9 * Author URI: https://www.messageok.com … … 11 11 * License: GPL2 12 12 * WC requires at least: 5 13 * WC tested up to: 8 13 * WC tested up to: 8.7 14 14 */ 15 15 … … 64 64 65 65 add_action( 'init', array( $this, 'load_translations' ) ); 66 67 // High-Performance-Order-Storage 68 add_action( 'before_woocommerce_init', function() { 69 if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 70 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 71 } 72 } ); 66 73 } 67 74 -
messageok/trunk/readme.txt
r3004824 r3072514 3 3 Tags: self-service, faq, customer center, customer portal 4 4 Requires at least: 5.6 5 Tested up to: 6. 46 Stable tag: 2.0. 55 Tested up to: 6.5 6 Stable tag: 2.0.6 7 7 Requires PHP: 7 8 8 License: GPL2
Note: See TracChangeset
for help on using the changeset viewer.