Skip to content

Commit 4f1396a

Browse files
authoredJan 7, 2021
Merge pull request #2 from jamilcse13/master
Prepare vendor migration
2 parents a9d1ebe + 6dafba1 commit 4f1396a

File tree

3 files changed

+114
-96
lines changed

3 files changed

+114
-96
lines changed
 

‎includes/Admin/Menu.php

+11-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
class Menu {
66
function __construct() {
77
add_action( 'admin_menu', [ $this, 'add_migrate_to_dokan_menu' ] );
8-
add_action( 'admin_init', [ $this, 'setup_wizard' ] );
8+
if (isset($_GET['page']) && $_GET['page'] == 'migrate-to-dokan'){
9+
add_action( 'admin_init', [ $this, 'setup_wizard' ] );
10+
}
911

1012
}
1113

1214
public function add_migrate_to_dokan_menu() {
13-
// add_menu_page( __( 'Migrate to Dokan', 'weDevs'), __( 'Migrate To Dokan', 'weDevs'), 'manage_options', 'migrate-to-dokan-menu', [ $this, 'add_migrate_to_dokan_page' ], 'dashicons-database' );
14-
add_submenu_page( null, '', '', 'manage_options', 'migrate-to-dokan1' );
15+
add_menu_page( __( 'Migrate to Dokan', 'weDevs'), __( 'Migrate To Dokan', 'weDevs'), 'manage_options', 'migrate-to-dokan-menu', [ $this, 'migrate' ], 'dashicons-database' );
16+
add_submenu_page( null, '', '', 'manage_options', 'migrate-to-dokan' );
1517
//echo 'alkdsfads'; die;
1618
}
1719

@@ -35,4 +37,10 @@ public function setup_wizard() {
3537
// include_once $template;
3638
// }
3739
}
40+
41+
public function migrate()
42+
{
43+
$migrator = Migrator_Manager::get_migrator();
44+
$migrator->migrate();
45+
}
3846
}

‎includes/Admin/Migrators/WCFM_Migrator.php

+101-85
Original file line numberDiff line numberDiff line change
@@ -46,101 +46,52 @@ protected function get_product_counts()
4646
*/
4747
protected function get_vendor_counts()
4848
{
49-
return get_option('_wcfmmg_vendor_count', 0);
50-
}
49+
$vendors = $this->get_all_vendors();
50+
51+
return is_array($vendors) ? count($vendors) : 0;
52+
}
53+
54+
private function get_all_vendors()
55+
{
56+
global $WCFM;
57+
58+
$wcfm_all_vendors = $WCFM->wcfm_vendor_support->wcfm_get_vendor_list( true, '', '', '' );
59+
60+
unset($wcfm_all_vendors[0]);
61+
62+
return $wcfm_all_vendors;
63+
}
5164

5265
public function migrate()
5366
{
54-
return 'Success';
67+
$this->migrate_vendor(5);
5568
}
5669

5770
function dokan_allwoed_vendor_user_roles( $user_roles ) {
5871
return array( 'seller' );
5972
}
6073

61-
public function store_setting_migrate( $vendor_id ) {
62-
global $WCFM, $WCFMmg;
63-
64-
if( !$vendor_id ) return false;
65-
66-
$vendor_data = array();
67-
74+
/**
75+
* Migrate a vendor to dokan vendor
76+
*
77+
* @param int $vendor_id
78+
* @return void
79+
*/
80+
public function migrate_vendor( $vendor_id ) {
81+
if ( !$vendor_id ) {
82+
return false;
83+
}
84+
6885
$vendor_user = get_userdata( $vendor_id );
69-
70-
$vendor_data = get_user_meta( $vendor_id, 'dokan_profile_settings', true );
71-
72-
if( !$vendor_data || ( $vendor_data && !is_array( $vendor_data ) ) ) $vendor_data = array();
73-
74-
$vendor_data['banner_type'] = 'single_img';
75-
$vendor_data['list_banner'] = isset( $vendor_data['banner'] ) ? $vendor_data['banner'] : '';
76-
$vendor_data['store_name'] = isset( $vendor_data['store_name'] ) ? $vendor_data['store_name'] : $vendor_user->display_name;
77-
$vendor_data['email'] = $vendor_user->user_email;
78-
79-
// Store Location
80-
$vendor_data['find_address'] = isset( $vendor_data['find_address'] ) ? esc_attr( $vendor_data['find_address'] ) : '';
81-
$vendor_data['store_location'] = isset( $vendor_data['location'] ) ? esc_attr( $vendor_data['location'] ) : '';
82-
$vendor_data['store_lat'] = 0;
83-
$vendor_data['store_lng'] = 0;
84-
85-
// Customer Support
86-
$vendor_data['customer_support'] = array();
87-
$vendor_data['customer_support']['phone'] = isset( $vendor_data['phone'] ) ? esc_attr( $vendor_data['phone'] ) : '';
88-
$vendor_data['customer_support']['email'] = $vendor_user->user_email;
89-
$vendor_data['customer_support']['address1'] = isset( $vendor_data['address']['street_1'] ) ? $vendor_data['address']['street_1'] : '';
90-
$vendor_data['customer_support']['address2'] = isset( $vendor_data['address']['street_2'] ) ? $vendor_data['address']['street_2'] : '';
91-
$vendor_data['customer_support']['country'] = isset( $vendor_data['address']['country'] ) ? $vendor_data['address']['country'] : '';
92-
$vendor_data['customer_support']['city'] = isset( $vendor_data['address']['city'] ) ? $vendor_data['address']['city'] : '';
93-
$vendor_data['customer_support']['state'] = isset( $vendor_data['address']['state'] ) ? $vendor_data['address']['state'] : '';
94-
$vendor_data['customer_support']['zip'] = isset( $vendor_data['address']['zip'] ) ? $vendor_data['address']['zip'] : '';
95-
96-
// Store Policy
97-
$wcfm_policy_vendor_options = array();
98-
$wcfm_policy_vendor_options['policy_tab_title'] = '';
99-
$wcfm_policy_vendor_options['shipping_policy'] = get_user_meta( $vendor_id, '_dps_ship_policy', true );
100-
$wcfm_policy_vendor_options['refund_policy'] = get_user_meta( $vendor_id, '_dps_refund_policy', true );
101-
$wcfm_policy_vendor_options['cancellation_policy'] = get_user_meta( $vendor_id, '_dps_refund_policy', true );
102-
update_user_meta( $vendor_id, 'wcfm_policy_vendor_options', $wcfm_policy_vendor_options );
103-
104-
// Store SEO
105-
$vendor_data['store_seo']['wcfmmp-seo-meta-title'] = isset( $vendor_data['store_seo']['dokan-seo-meta-title'] ) ? $vendor_data['store_seo']['dokan-seo-meta-title'] : '';
106-
$vendor_data['store_seo']['wcfmmp-seo-meta-desc'] = isset( $vendor_data['store_seo']['dokan-seo-meta-desc'] ) ? $vendor_data['store_seo']['dokan-seo-meta-desc'] : '';
107-
$vendor_data['store_seo']['wcfmmp-seo-meta-keywords'] = isset( $vendor_data['store_seo']['dokan-seo-meta-keywords'] ) ? $vendor_data['store_seo']['dokan-seo-meta-keywords'] : '';
108-
$vendor_data['store_seo']['wcfmmp-seo-og-title'] = isset( $vendor_data['store_seo']['dokan-seo-og-title'] ) ? $vendor_data['store_seo']['dokan-seo-og-title'] : '';
109-
$vendor_data['store_seo']['wcfmmp-seo-og-desc'] = isset( $vendor_data['store_seo']['dokan-seo-og-desc'] ) ? $vendor_data['store_seo']['dokan-seo-og-desc'] : '';
110-
$vendor_data['store_seo']['wcfmmp-seo-og-image'] = isset( $vendor_data['store_seo']['dokan-seo-og-image'] ) ? $vendor_data['store_seo']['dokan-seo-og-image'] : 0;
111-
$vendor_data['store_seo']['wcfmmp-seo-twitter-title'] = isset( $vendor_data['store_seo']['dokan-seo-twitter-title'] ) ? $vendor_data['store_seo']['dokan-seo-twitter-title'] : '';
112-
$vendor_data['store_seo']['wcfmmp-seo-twitter-desc'] = isset( $vendor_data['store_seo']['dokan-seo-twitter-desc'] ) ? $vendor_data['store_seo']['dokan-seo-twitter-desc'] : '';
113-
$vendor_data['store_seo']['wcfmmp-seo-twitter-image'] = isset( $vendor_data['store_seo']['dokan-seo-twitter-image'] ) ? $vendor_data['store_seo']['dokan-seo-twitter-image'] : 0;
114-
115-
// Set Store name
116-
update_user_meta( $vendor_id, 'store_name', $vendor_data['store_name'] );
117-
update_user_meta( $vendor_id, 'wcfmmp_store_name', $vendor_data['store_name'] );
118-
119-
// Set Vendor Shipping
120-
$wcfmmp_shipping = array ( '_wcfmmp_user_shipping_enable' => 'yes', '_wcfmmp_user_shipping_type' => 'by_zone' );
121-
update_user_meta( $vendor_id, '_wcfmmp_shipping', $wcfmmp_shipping );
122-
123-
// Store Commission
124-
$vendor_data['commission'] = array();
125-
$commission_type = get_user_meta( $vendor_id, 'dokan_admin_percentage_type', true );
126-
$commission_value = get_user_meta( $vendor_id, 'dokan_admin_percentage', true );
127-
128-
$vendor_data['commission']['commission_mode'] = 'global';
129-
if( $commission_value ) {
130-
if ( $commission_type == 'percent') {
131-
$vendor_data['commission']['commission_mode'] = $commission_type;
132-
$vendor_data['commission']['commission_percent'] = $commission_value;
133-
} else {
134-
$vendor_data['commission']['commission_mode'] = $commission_type;
135-
$vendor_data['commission']['commission_fixed'] = $commission_value;
136-
}
86+
87+
$vendor_user->set_role('seller');
88+
89+
$vendor_meta = $this->map_vendor_meta( $vendor_id );
90+
91+
foreach ( $vendor_meta as $key => $value ) {
92+
update_user_meta( $vendor_id, $key, $value );
13793
}
138-
$vendor_data['commission']['get_shipping'] = 'yes';
139-
$vendor_data['commission']['get_tax'] = 'yes';
140-
141-
// Store Genral Setting
142-
update_user_meta( $vendor_id, 'wcfmmp_profile_settings', $vendor_data );
143-
94+
14495
return true;
14596
}
14697

@@ -425,7 +376,7 @@ public function store_order_migrate( $vendor_id ) {
425376
if( $commission_id ) {
426377

427378
// Commission Ledger Update
428-
$reference_details = sprintf( __( 'Commission for %s order.', 'wc-multivendor-marketplace-migration' ), '<b>' . get_the_title( $product_id ) . '</b>' );
379+
$reference_details = sprintf( __( 'Commission for %s order.', 'wc-multivendor-marketplace-migration' ), '<br>' . get_the_title( $product_id ) . '</br>' );
429380
try {
430381
$wpdb->query(
431382
$wpdb->prepare(
@@ -763,4 +714,69 @@ public function store_vendor_migrate( $vendor_id ) {
763714

764715
return true;
765716
}
717+
718+
public function map_vendor_settings( $vendor_settings )
719+
{
720+
$dokan_settings = array();
721+
722+
$dokan_settings['store_name'] = $vendor_settings['store_name'];
723+
$dokan_settings['social'] = $vendor_settings['social'];
724+
$dokan_settings['social']['flickr'] = $vendor_settings[''];
725+
$dokan_settings['payment']['bank'] = $vendor_settings['payment']['bank'];
726+
$dokan_settings['payment']['paypal'] = $vendor_settings['payment']['paypal'];
727+
$dokan_settings['phone'] = $vendor_settings['phone'];
728+
$dokan_settings['show_email'] = $vendor_settings[''];
729+
$dokan_settings['address'] = $vendor_settings['address'];
730+
$dokan_settings['location'] = $vendor_settings[''];
731+
$dokan_settings['banner'] = $vendor_settings['banner'];
732+
$dokan_settings['icon'] = $vendor_settings[''];
733+
$dokan_settings['gravatar'] = $vendor_settings['gravatar'];
734+
$dokan_settings['show_more_ptab'] = 'yes';
735+
$dokan_settings['store_ppp'] = $vendor_settings['store_ppp'];
736+
$dokan_settings['enable_tnc'] = 'off';
737+
$dokan_settings['store_tnc'] = $vendor_settings[''];
738+
$dokan_settings['show_min_order_discount'] = 'no';
739+
$dokan_settings['store_seo']['dokan-seo-meta-title'] = $vendor_settings['store_seo']['wcfmmp-seo-meta-title'];
740+
$dokan_settings['store_seo']['dokan-seo-meta-desc'] = $vendor_settings['store_seo']['wcfmmp-seo-meta-desc'];
741+
$dokan_settings['store_seo']['dokan-seo-meta-keywords'] = $vendor_settings['store_seo']['wcfmmp-seo-meta-keywords'];
742+
$dokan_settings['store_seo']['dokan-seo-og-title'] = $vendor_settings['store_seo']['wcfmmp-seo-og-title'];
743+
$dokan_settings['store_seo']['dokan-seo-og-desc'] = $vendor_settings['store_seo']['wcfmmp-seo-og-desc'];
744+
$dokan_settings['store_seo']['dokan-seo-og-image'] = $vendor_settings['store_seo']['wcfmmp-seo-og-image'];
745+
$dokan_settings['store_seo']['dokan-seo-twitter-title'] = $vendor_settings['store_seo']['wcfmmp-seo-twitter-title'];
746+
$dokan_settings['store_seo']['dokan-seo-twitter-desc'] = $vendor_settings['store_seo']['wcfmmp-seo-twitter-desc'];
747+
$dokan_settings['store_seo']['dokan-seo-twitter-image'] = $vendor_settings['store_seo']['wcfmmp-seo-twitter-image'];
748+
$dokan_settings['dokan_store_time_enabled'] = 'yes';
749+
$dokan_settings['dokan_store_open_notice'] = $vendor_settings[''];
750+
$dokan_settings['dokan_store_close_notice'] = $vendor_settings[''];
751+
$dokan_settings['dokan_store_time'] = $vendor_settings['wcfm_store_hours'];
752+
753+
return $dokan_settings;
754+
}
755+
756+
public function map_vendor_meta( $vendor_id )
757+
{
758+
$vendor_meta = array();
759+
$wcfm_settings = get_user_meta( $vendor_id, 'wcfmmp_profile_settings', true );
760+
761+
$vendor_meta['dokan_store_name'] = get_user_meta( $vendor_id, 'wcfmmp_store_name' ) ?: get_user_meta( $vendor_id, 'store_name' );
762+
$vendor_meta['dokan_enable_selling'] = user_can( $vendor_id, 'wcfm_vendor' );
763+
$vendor_meta['dokan_publishing'] = 'no';
764+
$vendor_meta['dokan_profile_settings'] = $this->map_vendor_settings( $wcfm_settings );
765+
$vendor_meta['dokan_feature_seller'] = 'no';
766+
767+
if (isset($wcfm_settings['commission'])) {
768+
$commission_type = $wcfm_settings['commission']['commission_mode'];
769+
$commission_value = 0;
770+
if ($commission_type == 'percent') {
771+
$commission_value = $wcfm_settings['commission']['commission_percent'];
772+
} else if(isset($wcfm_settings['commission']['commission_fixed'])) {
773+
$commission_value = $wcfm_settings['commission']['commission_fixed'];
774+
}
775+
776+
$vendor_meta['dokan_admin_percentage'] = $commission_value;
777+
$vendor_meta['dokan_admin_percentage_type'] = $commission_type;
778+
}
779+
780+
return $vendor_meta;
781+
}
766782
}

‎migrate-to-dokan.php

+2-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ private function __construct() {
2525
$this->define_constants();
2626
$this->instance();
2727

28-
//register_activation_hook( __FILE__, [ $this, 'activate' ] );
28+
register_activation_hook( __FILE__, [ $this, 'activate' ] );
2929

3030
// add_action( 'init', [ $this, 'init_plugin' ] );
3131

@@ -67,13 +67,7 @@ public function define_constants() {
6767
}
6868

6969
public function activate() {
70-
echo 2;
71-
// new WeDevs\MigrateToDokan\Admin\Welcome();
72-
if ($_GET['page'] !== 'migrate-to-dokan1') {
73-
wp_safe_redirect(admin_url('admin.php?page=migrate-to-dokan1'));
74-
}
75-
76-
exit();
70+
7771
}
7872
}
7973

0 commit comments

Comments
 (0)
Please sign in to comment.