Skip to content

Instantly share code, notes, and snippets.

@alamgircsebd
Last active February 2, 2021 10:22
Show Gist options
  • Save alamgircsebd/b2170ecfd6c9a81aca4a9a8123e96524 to your computer and use it in GitHub Desktop.
Save alamgircsebd/b2170ecfd6c9a81aca4a9a8123e96524 to your computer and use it in GitHub Desktop.
/**
* 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