From 02821cfdb91486acbf85c9a60b6053e78d91a25e Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Tue, 17 Jan 2023 12:31:27 +0100 Subject: [PATCH] Plugin: BuyCourses: Fix notices --- .../src/buy_course_plugin.class.php | 2 +- plugin/buycourses/src/configure_course.php | 59 ++++++++++++------- .../buycourses/src/configure_subscription.php | 2 +- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/plugin/buycourses/src/buy_course_plugin.class.php b/plugin/buycourses/src/buy_course_plugin.class.php index b406a7fbbf..c0ce6a3941 100644 --- a/plugin/buycourses/src/buy_course_plugin.class.php +++ b/plugin/buycourses/src/buy_course_plugin.class.php @@ -3084,7 +3084,7 @@ class BuyCoursesPlugin extends Plugin } /** - * @param array $coupon Array with at least 'discount_type' and 'discount_amount' elements + * @param array|null $coupon Array with at least 'discount_type' and 'discount_amount' elements */ public function setPriceSettings(array &$product, int $productType, array $coupon = null): bool { diff --git a/plugin/buycourses/src/configure_course.php b/plugin/buycourses/src/configure_course.php index 7dc37f4254..00b59ccd55 100644 --- a/plugin/buycourses/src/configure_course.php +++ b/plugin/buycourses/src/configure_course.php @@ -40,6 +40,7 @@ if (empty($currency)) { Display::addFlash( Display::return_message($plugin->get_lang('CurrencyIsNotConfigured'), 'error') ); + $currency = null; } $currencyIso = null; @@ -69,30 +70,44 @@ if ($editingCourse) { $defaultBeneficiaries[] = $teacher->getId(); } - $currentBeneficiaries = $plugin->getItemBeneficiaries($courseItem['item_id']); - if (!empty($currentBeneficiaries)) { - $defaultBeneficiaries = array_column($currentBeneficiaries, 'user_id'); - if ($commissionsEnable === 'true') { - $defaultCommissions = array_column($currentBeneficiaries, 'commissions'); - foreach ($defaultCommissions as $defaultCommission) { - $commissions .= $defaultCommission.','; + if (!empty($courseItem['item_id'])) { + $currentBeneficiaries = $plugin->getItemBeneficiaries($courseItem['course_id']); + if (!empty($currentBeneficiaries)) { + $defaultBeneficiaries = array_column($currentBeneficiaries, 'user_id'); + if ($commissionsEnable === 'true') { + $defaultCommissions = array_column($currentBeneficiaries, 'commissions'); + foreach ($defaultCommissions as $defaultCommission) { + $commissions .= $defaultCommission.','; + } + $commissions = substr($commissions, 0, -1); } - $commissions = substr($commissions, 0, -1); } - } - $currencyIso = $courseItem['currency']; - $formDefaults = [ - 'product_type' => get_lang('Course'), - 'id' => $courseItem['course_id'], - 'type' => BuyCoursesPlugin::PRODUCT_TYPE_COURSE, - 'name' => $courseItem['course_title'], - 'visible' => $courseItem['visible'], - 'price' => $courseItem['price'], - 'tax_perc' => $courseItem['tax_perc'], - 'beneficiaries' => $defaultBeneficiaries, - $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? $commissions : '', - ]; + $currencyIso = $courseItem['currency']; + $formDefaults = [ + 'product_type' => get_lang('Course'), + 'id' => $courseItem['course_id'], + 'type' => BuyCoursesPlugin::PRODUCT_TYPE_COURSE, + 'name' => $courseItem['course_title'], + 'visible' => $courseItem['visible'], + 'price' => $courseItem['price'], + 'tax_perc' => $courseItem['tax_perc'], + 'beneficiaries' => $defaultBeneficiaries, + $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? $commissions : '', + ]; + } else { + $formDefaults = [ + 'product_type' => get_lang('Course'), + 'id' => $courseItem['course_id'], + 'type' => BuyCoursesPlugin::PRODUCT_TYPE_COURSE, + 'name' => $courseItem['course_title'], + 'visible' => false, + 'price' => 0, + 'tax_perc' => 0, + 'beneficiaries' => [], + $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? '' : '', + ]; + } } elseif ($editingSession) { if (!$includeSession) { api_not_allowed(true); @@ -175,7 +190,7 @@ if ($commissionsEnable === 'true') { } else { showSliders(100, 'default', '".$commissions."'); } - + var maxPercentage = 100; $('#selectBox').on('change', function() { $('#panelSliders').html(''); diff --git a/plugin/buycourses/src/configure_subscription.php b/plugin/buycourses/src/configure_subscription.php index e039bb03ab..8a438021b6 100644 --- a/plugin/buycourses/src/configure_subscription.php +++ b/plugin/buycourses/src/configure_subscription.php @@ -190,7 +190,7 @@ $frequencyForm->addHidden('tax_perc', $taxtPerc); $frequencyForm->addHidden('currency_id', $currency['id']); $frequencyForm->addButtonCreate('Add'); -for ($i = 0; $i <= count($subscriptions); $i++) { +for ($i = 0; $i < count($subscriptions); $i++) { if ($subscriptions[$i]['duration'] > 0) { $subscriptions[$i]['durationName'] = $frequenciesOptions[$subscriptions[$i]['duration']]; }