Skip to content

Commit

Permalink
Fix commission upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
Aunshon committed Nov 22, 2024
1 parent dcb8376 commit f26fd56
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

use WeDevs\Dokan\Abstracts\DokanBackgroundProcesses;
use WeDevs\Dokan\Commission\Formula\Fixed;
use WeDevs\Dokan\Commission\Formula\Flat;
use WeDevs\Dokan\Commission\Formula\Percentage;
use WP_Term;

/**
Expand Down Expand Up @@ -61,10 +63,20 @@ private function update_global_settings( $terms ) {
$commission = get_term_meta( $term->term_id, 'per_category_admin_commission', true );

if ( ! empty( $commission_type ) ) {
$category_commission['items'][ $term->term_id ] = [
$category_commission_item = [
'flat' => $admin_additional_fee,
'percentage' => $commission,
];

if ( Flat::SOURCE === $commission_type ) {
$category_commission_item['percentage'] = 0;
$category_commission_item['flat'] = $commission;
} elseif ( Percentage::SOURCE === $commission_type ) {
$category_commission_item['percentage'] = $commission;
$category_commission_item['flat'] = 0;
}

$category_commission['items'][ $term->term_id ] = $category_commission_item;
}
}

Expand All @@ -85,14 +97,26 @@ private function update_global_settings( $terms ) {
*/
private function update_vendors_settings( $vendors ) {
foreach ( $vendors as $vendor ) {
$commission = $vendor->get_commission_settings();
$commission = $vendor->get_commission_settings();
$commission_type_old = $commission->get_type();
$commission->set_type( Fixed::SOURCE );

$commission_type = $commission->get_type();
$flat = $commission->get_flat();
$percentage = $commission->get_percentage();

if ( Flat::SOURCE === $commission_type_old ) {
$percentage = 0;
$flat = $percentage;
} elseif ( Percentage::SOURCE === $commission_type_old ) {
$flat = 0;
}

$vendor->save_commission_settings(
[
'percentage' => $commission->get_percentage(),
'type' => $commission->get_type(),
'flat' => $commission->get_flat(),
'type' => $commission_type,
'flat' => $flat,
'percentage' => $percentage,
'category_commissions' => $commission->get_category_commissions(),
]
);
Expand All @@ -113,14 +137,27 @@ private function update_vendors_settings( $vendors ) {
private function update_products_settings( $posts ) {
foreach ( $posts as $post ) {
$commission = dokan()->product->get_commission_settings( $post->ID );

$commission_type_old = $commission->get_type();
$commission->set_type( Fixed::SOURCE );

$commission_type = $commission->get_type();
$flat = $commission->get_flat();
$percentage = $commission->get_percentage();

if ( Flat::SOURCE === $commission_type_old ) {
$percentage = 0;
$flat = $percentage;
} elseif ( Percentage::SOURCE === $commission_type_old ) {
$flat = 0;
}

dokan()->product->save_commission_settings(
$post->ID,
[
'percentage' => $commission->get_percentage(),
'type' => $commission->get_type(),
'flat' => $commission->get_flat(),
'type' => $commission_type,
'percentage' => $percentage,
'flat' => $flat,
]
);
}
Expand Down
16 changes: 14 additions & 2 deletions includes/Upgrade/Upgrades/V_3_14_0.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

use WeDevs\Dokan\Abstracts\DokanUpgrader;
use WeDevs\Dokan\Commission\Formula\Fixed;
use WeDevs\Dokan\Commission\Formula\Flat;
use WeDevs\Dokan\Commission\Formula\Percentage;
use WeDevs\Dokan\Upgrade\Upgrades\BackgroundProcesses\V_3_14_0_UpdateCommissions;

class V_3_14_0 extends DokanUpgrader {
Expand All @@ -16,11 +18,21 @@ class V_3_14_0 extends DokanUpgrader {
* @return void
*/
public static function update_global_commission_type() {
$options = get_option( 'dokan_selling', [] );
$commission_type = isset( $options['commission_type'] ) ? $options['commission_type'] : Fixed::SOURCE;
$options = get_option( 'dokan_selling', [] );

$commission_type = isset( $options['commission_type'] ) ? $options['commission_type'] : Fixed::SOURCE;
$admin_percentage = isset( $options['admin_percentage'] ) ? $options['admin_percentage'] : 0;

if ( in_array( $commission_type, array_keys( dokan()->commission->get_legacy_commission_types() ), true ) ) {
$options['commission_type'] = Fixed::SOURCE;

if ( Flat::SOURCE === $commission_type ) {
$options['admin_percentage'] = 0;
$options['additional_fee'] = $admin_percentage;
} elseif ( Percentage::SOURCE === $commission_type ) {
$options['admin_percentage'] = $admin_percentage;
$options['additional_fee'] = 0;
}
update_option( 'dokan_selling', $options );
}
}
Expand Down

0 comments on commit f26fd56

Please sign in to comment.