wc_update_260_zone_methods بروزرسانی مناطق حمل و نقل ووکامرس به نسخه 2.6.0
تابع ووکامرسی wc_update_260_zone_methods – بروزرسانی مناطق حمل و نقل ووکامرس به نسخه 2.6.0
Syntax – سینتکس
wc_update_260_zone_methods();
Usage – نحوه استفاده
if ( !function_exists( 'wc_update_260_zone_methods' ) ) { require_once ABSPATH . PLUGINDIR . 'woocommerce/includes/wc-update-functions.php'; } // NOTICE! Understand what this does before running. $result = wc_update_260_zone_methods();
Defined – محل تعریف
/includes/wc-update-functions.php
function wc_update_260_zone_methods() { global $wpdb; /** * Shipping zones in WC 2.6.0 use a table named woocommerce_shipping_zone_methods. * Migrate the old data out of woocommerce_shipping_zone_shipping_methods into the new table and port over any known options (used by table rates and flat rate boxes). */ if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}woocommerce_shipping_zone_shipping_methods';" ) ) { $old_methods = $wpdb->get_results( "SELECT zone_id, shipping_method_type, shipping_method_order, shipping_method_id FROM {$wpdb->prefix}woocommerce_shipping_zone_shipping_methods;" ); if ( $old_methods ) { $max_new_id = $wpdb->get_var( "SELECT MAX(instance_id) FROM {$wpdb->prefix}woocommerce_shipping_zone_methods" ); $max_old_id = $wpdb->get_var( "SELECT MAX(shipping_method_id) FROM {$wpdb->prefix}woocommerce_shipping_zone_shipping_methods" ); // Avoid ID conflicts $wpdb->query( $wpdb->prepare( "ALTER TABLE {$wpdb->prefix}woocommerce_shipping_zone_methods AUTO_INCREMENT = %d;", max( $max_new_id, $max_old_id ) + 1 ) ); // Store changes $changes = array(); // Move data foreach ( $old_methods as $old_method ) { $wpdb->insert( $wpdb->prefix . 'woocommerce_shipping_zone_methods', array( 'zone_id' => $old_method->zone_id, 'method_id' => $old_method->shipping_method_type, 'method_order' => $old_method->shipping_method_order, ) ); $new_instance_id = $wpdb->insert_id; // Move main settings $older_settings_key = 'woocommerce_' . $old_method->shipping_method_type . '-' . $old_method->shipping_method_id . '_settings'; $old_settings_key = 'woocommerce_' . $old_method->shipping_method_type . '_' . $old_method->shipping_method_id . '_settings'; add_option( 'woocommerce_' . $old_method->shipping_method_type . '_' . $new_instance_id . '_settings', get_option( $old_settings_key, get_option( $older_settings_key ) ) ); // Handling for table rate and flat rate box shipping. if ( 'table_rate' === $old_method->shipping_method_type ) { // Move priority settings add_option( 'woocommerce_table_rate_default_priority_' . $new_instance_id, get_option( 'woocommerce_table_rate_default_priority_' . $old_method->shipping_method_id ) ); add_option( 'woocommerce_table_rate_priorities_' . $new_instance_id, get_option( 'woocommerce_table_rate_priorities_' . $old_method->shipping_method_id ) ); // Move rates $wpdb->update( $wpdb->prefix . 'woocommerce_shipping_table_rates', array( 'shipping_method_id' => $new_instance_id, ), array( 'shipping_method_id' => $old_method->shipping_method_id, ) ); } elseif ( 'flat_rate_boxes' === $old_method->shipping_method_type ) { $wpdb->update( $wpdb->prefix . 'woocommerce_shipping_flat_rate_boxes', array( 'shipping_method_id' => $new_instance_id, ), array( 'shipping_method_id' => $old_method->shipping_method_id, ) ); } $changes[ $old_method->shipping_method_id ] = $new_instance_id; } // $changes contains keys (old method ids) and values (new instance ids) if extra processing is needed in plugins. // Store this to an option so extensions can pick it up later, then fire an action. update_option( 'woocommerce_updated_instance_ids', $changes ); do_action( 'woocommerce_updated_instance_ids', $changes ); } } // Change ranges used to ... $wpdb->query( "UPDATE {$wpdb->prefix}woocommerce_shipping_zone_locations SET location_code = REPLACE( location_code, '-', '...' );" ); }
versions – نسخه ها
از نسخه : 3.0.2
نسخه فعلی : 3.0.6
دیگر نسخه ها : 3.0.6 , 3.0.5 , 3.0.4 , 3.0.3 , 3.0.2
ارسال نظر