wc_update_260_zone_methods بروزرسانی مناطق حمل و نقل ووکامرس به نسخه 2.6.0

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

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us