Last active
February 2, 2021 10:22
-
-
Save alamgircsebd/b2170ecfd6c9a81aca4a9a8123e96524 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Dokan missing geolocation data migrate for products | |
* | |
* @param Int $store_id | |
*/ | |
function dokan_missing_geolocation_data_migrate( $store_id = 0 ) { | |
if ( empty( $store_id ) ) { | |
return; | |
} | |
if ( ! class_exists( 'WeDevs_Dokan' ) ) { | |
return; | |
} | |
$vendor_products = dokan()->product->all( [ 'author' => $store_id ] ); | |
$effectd = 0; | |
if ( $vendor_products->posts ) { | |
$vendor_geo_lat = get_user_meta( $store_id, 'dokan_geo_latitude', true ); | |
$vendor_geo_lon = get_user_meta( $store_id, 'dokan_geo_longitude', true ); | |
$vendor_geo_add = get_user_meta( $store_id, 'dokan_geo_address', true ); | |
$vendor_geo_pub = get_user_meta( $store_id, 'dokan_geo_public', true ); | |
foreach ( $vendor_products->posts as $product ) { | |
$product_geo_lat = get_post_meta( $product->ID, 'dokan_geo_latitude', true ); | |
$product_geo_lon = get_post_meta( $product->ID, 'dokan_geo_longitude', true ); | |
$product_geo_add = get_post_meta( $product->ID, 'dokan_geo_address', true ); | |
if ( empty( $product_geo_lat ) || empty( $product_geo_lon ) || empty( $product_geo_add ) ) { | |
update_post_meta( $product->ID, 'dokan_geo_latitude', $vendor_geo_lat ); | |
update_post_meta( $product->ID, 'dokan_geo_longitude', $vendor_geo_lon ); | |
update_post_meta( $product->ID, 'dokan_geo_public', $vendor_geo_pub ); | |
update_post_meta( $product->ID, 'dokan_geo_address', $vendor_geo_add ); | |
$effectd++; | |
} | |
} | |
} | |
return 'Effected Products: ' .$effectd; | |
} | |
// single vendor products will effect | |
dokan_missing_geolocation_data_migrate( 12 ); | |
// all vendors products will effect | |
$all_vendors = dokan()->vendor->all(); | |
foreach ( $all_vendors as $vendor ) { | |
dokan_missing_geolocation_data_migrate( $vendor->id ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment