get('paypal_enable');
$commissionsEnable = $plugin->get('commissions_enable');
$action = isset($_GET['a']) ? $_GET['a'] : null;
switch ($action) {
case 'saleInfo':
//$saleId is only used in getSale() and is always filtered there
$saleId = isset($_POST['id']) ? $_POST['id'] : '';
$sale = $plugin->getSale($saleId);
$productType = ($sale['product_type'] == 1) ? get_lang('Course') : get_lang('Session');
$paymentType = ($sale['payment_type'] == 1) ? 'Paypal' : $plugin->get_lang('BankTransfer');
$productInfo = ($sale['product_type'] == 1)
? api_get_course_info_by_id($sale['product_id'])
: api_get_session_info($sale['product_id']);
$currency = $plugin->getSelectedCurrency();
if ($sale['product_type'] == 1) {
$productImage = $productInfo['course_image_large'];
} else {
$productImage = ($productInfo['image'])
? $productInfo['image']
: Template::get_icon_path('session_default.png');
}
$userInfo = api_get_user_info($sale['user_id']);
$html = '
'.$sale['product_name'].'
';
$html .= '';
$html .= '
';
$html .= '
';
$html .= '- '.$plugin->get_lang('OrderPrice').': '.$sale['price'].'
';
$html .= '- '.$plugin->get_lang('CurrencyType').': '.$currency['iso_code'].'
';
$html .= '- '.$plugin->get_lang('ProductType').': '.$productType.'
';
$html .= '- '.$plugin->get_lang('OrderDate').': '
.api_format_date($sale['date'], DATE_TIME_FORMAT_LONG_24H).'
';
$html .= '- '.$plugin->get_lang('Buyer').': '.$userInfo['complete_name'].'
';
$html .= '- '.$plugin->get_lang('PaymentMethods').': '.$paymentType.'
';
$html .= '
';
$html .= '
';
$html .= '
';
$html .= '
';
$html .= '
';
$html .= '
';
echo $html;
break;
case 'stats':
$stats = [];
$stats['completed_count'] = 0;
$stats['completed_total_amount'] = 0;
$stats['pending_count'] = 0;
$stats['pending_total_amount'] = 0;
$stats['canceled_count'] = 0;
$stats['canceled_total_amount'] = 0;
$completedPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_COMPLETED);
$pendingPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING);
$canceledPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_CANCELED);
$currency = $plugin->getSelectedCurrency();
foreach ($completedPayouts as $completed) {
$stats['completed_count'] = count($completedPayouts);
$stats['completed_total_amount'] += $completed['commission'];
$stats['completed_total_amount'] = number_format($stats['completed_total_amount'], 2);
}
foreach ($pendingPayouts as $pending) {
$stats['pending_count'] = count($pendingPayouts);
$stats['pending_total_amount'] += $pending['commission'];
$stats['pending_total_amount'] = number_format($stats['pending_total_amount'], 2);
}
foreach ($canceledPayouts as $canceled) {
$stats['canceled_count'] = count($canceledPayouts);
$stats['canceled_total_amount'] += $canceled['commission'];
$stats['canceled_total_amount'] = number_format($stats['canceled_total_amount'], 2);
}
$html = '
-
'.get_plugin_lang("PayoutsTotalCompleted", "BuyCoursesPlugin").'
'.$stats['completed_count'].' - '.get_plugin_lang("TotalAmount", "BuyCoursesPlugin").'
'.$stats['completed_total_amount'].' '.$currency['iso_code'].'
- '.get_plugin_lang("PayoutsTotalPending", "BuyCoursesPlugin").'
'.$stats['pending_count'].' - '.get_plugin_lang("TotalAmount", "BuyCoursesPlugin").'
'.$stats['pending_total_amount'].' '.$currency['iso_code'].'
- '.get_plugin_lang("PayoutsTotalCanceled", "BuyCoursesPlugin").'
'.$stats['canceled_count'].' - '.get_plugin_lang("TotalAmount", "BuyCoursesPlugin").'
'.$stats['canceled_total_amount'].' '.$currency['iso_code'].'
';
echo $html;
break;
case 'processPayout':
if (api_is_anonymous()) {
break;
}
$html = '';
$allPays = [];
$totalAccounts = 0;
$totalPayout = 0;
$payouts = isset($_POST['payouts']) ? $_POST['payouts'] : '';
if (!$payouts) {
echo Display::return_message(get_plugin_lang("SelectOptionToProceed", "BuyCoursesPlugin"), 'error', false);
break;
}
foreach ($payouts as $index => $id) {
$allPays[] = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING, $id);
}
foreach ($allPays as $payout) {
$totalPayout += number_format($payout['commission'], 2);
$totalAccounts++;
}
$currentCurrency = $plugin->getSelectedCurrency();
$isoCode = $currentCurrency['iso_code'];
$html .= ''.get_plugin_lang("VerifyTotalAmountToProceedPayout", "BuyCoursesPlugin").'
';
$html .= '
- '.get_plugin_lang("TotalAcounts", "BuyCoursesPlugin").' '.$totalAccounts.'
- '.get_plugin_lang("TotalPayout", "BuyCoursesPlugin").' '.$isoCode.' '.$totalPayout.'
'.get_plugin_lang("CautionThisProcessCantBeCanceled", "BuyCoursesPlugin").'
';
echo $html;
break;
case 'proceedPayout':
if (api_is_anonymous()) {
break;
}
$paypalParams = $plugin->getPaypalParams();
$pruebas = $paypalParams['sandbox'] == 1;
$paypalUsername = $paypalParams['username'];
$paypalPassword = $paypalParams['password'];
$paypalSignature = $paypalParams['signature'];
require_once "paypalfunctions.php";
$allPayouts = [];
$totalAccounts = 0;
$totalPayout = 0;
$payouts = isset($_POST['payouts']) ? $_POST['payouts'] : '';
if (!$payouts) {
echo Display::return_message(get_plugin_lang("SelectOptionToProceed", "BuyCoursesPlugin"), 'error', false);
break;
}
foreach ($payouts as $index => $id) {
$allPayouts[] = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING, $id);
}
$currentCurrency = $plugin->getSelectedCurrency();
$isoCode = $currentCurrency['iso_code'];
$result = MassPayment($allPayouts, $isoCode);
if ($result['ACK'] === 'Success') {
foreach ($allPayouts as $payout) {
$plugin->setStatusPayouts($payout['id'], BuyCoursesPlugin::PAYOUT_STATUS_COMPLETED);
}
echo Display::return_message(get_plugin_lang("PayoutSuccess", "BuyCoursesPlugin"), 'success', false);
} else {
echo Display::return_message(
''.$result['L_SEVERITYCODE0'].' '.$result['L_ERRORCODE0'].' - '
.$result['L_SHORTMESSAGE0'].'
- '.$result['L_LONGMESSAGE0'].'
',
'error',
false
);
}
break;
case 'cancelPayout':
if (api_is_anonymous()) {
break;
}
$payoutId = isset($_POST['id']) ? $_POST['id'] : '';
$plugin->setStatusPayouts($payoutId, BuyCoursesPlugin::PAYOUT_STATUS_CANCELED);
echo '';
break;
}
exit;