function _express_checkout_redirect() { global $event_details; $event_id = $event_details['ID']; //key( ( array ) $_SESSION['__epl'][$regis_id]['events'] ); if (is_null($event_id)) { return false; } $this->epl->load_file('libraries/gateways/paypal/paypal.php'); $url = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ? "https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] : "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; //echo "<pre class='prettyprint'>" . print_r( $_SESSION, true ) . "</pre>"; $regis_id = $this->erm->get_regis_id(); $gateway_info = $this->erm->get_gateway_info(); $tickets = $_SESSION['__epl'][$regis_id]['_dates']['_att_quantity']; $post_ID = $_SESSION['__epl']['post_ID']; //echo "<pre class='prettyprint'>" . print_r($post_ID, true). "</pre>"; $this->ecm->setup_event_details($event_id); $_totals = $this->erm->calculate_totals(); $requestParams = array('RETURNURL' => esc_url_raw(add_query_arg(array('cart_action' => '', 'p_ID' => $post_ID, 'regis_id' => $regis_id, 'epl_action' => '_exp_checkout_payment_success'), $url)), 'CANCELURL' => esc_url_raw(add_query_arg(array('cart_action' => '', 'p_ID' => $post_ID, 'regis_id' => $regis_id, 'epl_action' => '_exp_checkout_payment_cancel'), $url)), "SOLUTIONTYPE" => 'Sole', "LANDINGPAGE" => epl_nz($gateway_info['_epl_pp_landing_page'], 'Login')); $orderParams = array('PAYMENTREQUEST_0_AMT' => $_totals['money_totals']['grand_total'], 'PAYMENTREQUEST_0_SHIPPINGAMT' => 0, 'PAYMENTREQUEST_0_CURRENCYCODE' => epl_nz(epl_get_general_setting('epl_currency_code'), 'USD'), 'PAYMENTREQUEST_0_ITEMAMT' => $_totals['money_totals']['grand_total']); $item = array('L_PAYMENTREQUEST_0_NAME0' => epl__('Registration'), 'L_PAYMENTREQUEST_0_DESC0' => $event_details['post_title'] . ', ' . $_totals['_att_quantity']['total'][$event_details['ID']] . ' ' . epl__('attendees'), 'L_PAYMENTREQUEST_0_AMT0' => $_totals['money_totals']['grand_total'], 'L_PAYMENTREQUEST_0_QTY0' => 1); /* $counter = 0; $item = array( ); foreach ( $tickets as $event_id => $ind_tickets ) { foreach ( $ind_tickets as $ticket_id => $ticket_qty ) { $ticket_name = epl_get_element( $ticket_id, $event_details['_epl_price_name'] ); $ticket_price = epl_get_element( $ticket_id, $event_details['_epl_price'] ); $qty = (is_array( $ticket_qty )) ? array_sum( $ticket_qty ) : $ticket_qty; if ( $qty > 0 ) { $item['L_PAYMENTREQUEST_0_NAME' . $counter] = substr( $event_details['post_title'], 0, 126 ); $item['L_PAYMENTREQUEST_0_DESC' . $counter] = $ticket_name; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = $ticket_price; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = $qty; $counter++; } } } */ //echo "<pre class='prettyprint'>" . print_r( $requestParams + $orderParams + $item, true ) . "</pre>"; $paypal = new EPL_Paypal(); $response = $paypal->request('SetExpressCheckout', $requestParams + $orderParams + $item); if (is_array($response) && $response['ACK'] == 'Success') { //Request successful $token = $response['TOKEN']; if ($gateway_info['_epl_sandbox'] == 10) { header('Location: https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=' . urlencode($token)); } else { header('Location: https://www.paypal.com/webscr?cmd=_express-checkout&token=' . urlencode($token)); } } else { $error = 'ERROR: ' . $response['L_SHORTMESSAGE0'] . '. ' . $response['L_LONGMESSAGE0']; echo EPL_Util::get_instance()->epl_invoke_error(0, $error, false); } }
function __construct() { parent::__construct(); //resetting the var just in case there is a widget on the left global $event_details; $event_details = array(); $this->user_id = get_current_user_id(); $this->ecm = $this->epl->load_model('epl-common-model'); $this->ercm = $this->epl->load_model('epl-recurrence-model'); $this->eutil = EPL_Util::get_instance(); $this->mode = 'edit'; $this->overview_trigger = null; self::$instance = $this; }
function _exp_checkout_do_payment() { global $event_details, $cart_totals; $event_id = $event_details['ID']; if (is_null($event_id)) { //return false; } $regis_id = $this->erm->get_regis_id(); $post_ID = $this->erm->get_regis_post_id(); $this->ecm->setup_event_details($event_id); $line_item_surcharge = false; $line_item_surcharge = apply_filters('egm__pp_exp__line_item_surcharge', $line_item_surcharge); $_totals = $this->erm->calculate_cart_totals(); $amount = $cart_totals['money_totals']['grand_total']; $amount = epl_get_balance_due(); $tax = epl_get_element_m('surcharge', 'money_totals', $cart_totals, 0); $subtotal = epl_get_element_m('subtotal', 'money_totals', $cart_totals, 0); $num_days_in_cart = array(); $price_multiplier = array(); $price_multiplier_label = array(); $discount_amount = number_format(epl_get_element('discount_amount', $cart_totals['money_totals'], 0), 2, ".", ""); //$subtotal = $discount_amount > 0 ? number_format( $subtotal - $discount_amount, 2 ) : $subtotal; $this->epl->load_file('libraries/gateways/paypal/paypal.php'); $paypal = new EPL_Paypal(); $gateway_info = $this->erm->get_gateway_info(); $paypal->_credentials = array('USER' => $gateway_info['_epl_pp_exp_user'], 'PWD' => $gateway_info['_epl_pp_exp_pwd'], 'SIGNATURE' => $gateway_info['_epl_pp_exp_sig']); $requestParams = array('TOKEN' => $_GET['token'], 'PAYMENTACTION' => 'Sale', 'PAYERID' => $_GET['PayerID']); $orderParams = array('PAYMENTREQUEST_0_AMT' => $amount, 'PAYMENTREQUEST_0_ITEMAMT' => $amount - $tax, 'PAYMENTREQUEST_0_CURRENCYCODE' => epl_nz(epl_get_general_setting('epl_currency_code'), 'USD'), 'PAYMENTREQUEST_0_TAXAMT' => $line_item_surcharge === false ? $tax : 0); $counter = 0; $tickets = $_SESSION['__epl'][$regis_id]['_dates']['_att_quantity']; $dates = isset($_SESSION['__epl'][$regis_id]['_dates']['_epl_start_date']) ? $_SESSION['__epl'][$regis_id]['_dates']['_epl_start_date'] : array(); $events = $_SESSION['__epl'][$regis_id]['_events']; $parallel_pay = epl_get_regis_setting('_epl_enable_PP_parallel_pay') == 10 && !epl_is_empty_array(epl_get_element('_epl_price_parallel_pay_email', $event_details, array())); $pp_email = epl_get_element('_epl_pp_exp_email', $gateway_info); if ($parallel_pay) { $orderParams = array(); foreach ($tickets as $event_id => $ind_tickets) { $this->ecm->setup_event_details($event_id); foreach ($ind_tickets as $ticket_id => $ticket_qty) { $ticket_name = epl_get_element($ticket_id, $event_details['_epl_price_name']); $ticket_price = epl_get_element($ticket_id, $event_details['_epl_price']); if (epl_is_eligible_for_member_price($ticket_id)) { $ticket_price = epl_get_element_m($ticket_id, '_epl_member_price', $event_details, $ticket_price); } $qty = is_array($ticket_qty) ? array_sum($ticket_qty) : $ticket_qty; if ($qty > 0) { $orderParams['PAYMENTREQUEST_' . $counter . '_AMT'] = $ticket_price; $orderParams['PAYMENTREQUEST_' . $counter . '_SELLERPAYPALACCOUNTID'] = epl_get_element_m($ticket_id, '_epl_price_parallel_pay_email', $event_details, $pp_email); $orderParams['PAYMENTREQUEST_' . $counter . '_SHIPPINGAMT'] = 0; $orderParams['PAYMENTREQUEST_' . $counter . '_CURRENCYCODE'] = epl_nz(epl_get_general_setting('epl_currency_code'), 'USD'); $orderParams['PAYMENTREQUEST_' . $counter . '_ITEMAMT'] = $ticket_price; $orderParams['PAYMENTREQUEST_' . $counter . '_TAXAMT'] = 0; $orderParams['PAYMENTREQUEST_' . $counter . '_DESC'] = substr($ticket_name, 0, 126); $orderParams['PAYMENTREQUEST_' . $counter . '_PAYMENTREQUESTID'] = $post_ID . '-' . $counter; $counter++; } } } } $counter = 0; $item = array(); foreach ($tickets as $event_id => $ind_tickets) { $this->ecm->setup_event_details($event_id); $num_days_in_cart[$event_id] = count(epl_get_element($event_id, $dates, array())); $price_multiplier[$event_id] = $event_details['_epl_price_per'] == 10 && !epl_is_date_level_price() ? $num_days_in_cart[$event_id] : 1; $price_multiplier_label[$event_id] = $price_multiplier[$event_id] > 1 ? ' - ' . $num_days_in_cart[$event_id] . ' ' . epl__('days') : ''; foreach ($ind_tickets as $ticket_id => $ticket_qty) { $ticket_name = epl_get_element($ticket_id, $event_details['_epl_price_name']); $ticket_price = epl_get_element($ticket_id, $event_details['_epl_price']); if (epl_is_eligible_for_member_price($ticket_id)) { $ticket_price = epl_get_element_m($ticket_id, '_epl_member_price', $event_details, $ticket_price); } $qty = is_array($ticket_qty) ? array_sum($ticket_qty) : $ticket_qty; if ($qty > 0) { $item['L_PAYMENTREQUEST_0_NAME' . $counter] = substr($event_details['post_title'], 0, 126); $item['L_PAYMENTREQUEST_0_DESC' . $counter] = $ticket_name . $price_multiplier_label[$event_id]; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = $ticket_price; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = $qty * $price_multiplier[$event_id]; $counter++; } } } if ($parallel_pay) { $item = array(); $counter = 0; $ticket_counter = 0; //this will be incremented if we do line item per ticket qty foreach ($tickets as $event_id => $ind_tickets) { $this->ecm->setup_event_details($event_id); foreach ($ind_tickets as $ticket_id => $ticket_qty) { $ticket_name = epl_get_element($ticket_id, $event_details['_epl_price_name']); $ticket_price = epl_get_element($ticket_id, $event_details['_epl_price']); if (epl_is_eligible_for_member_price($ticket_id)) { $ticket_price = epl_get_element_m($ticket_id, '_epl_member_price', $event_details, $ticket_price); } $qty = is_array($ticket_qty) ? array_sum($ticket_qty) : $ticket_qty; if ($qty > 0) { $item['L_PAYMENTREQUEST_' . $counter . '_NAME' . $ticket_counter] = substr($event_details['post_title'], 0, 126); $item['L_PAYMENTREQUEST_' . $counter . '_DESC' . $ticket_counter] = $ticket_name . $price_multiplier_label[$event_id]; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_' . $counter . '_AMT' . $ticket_counter] = $ticket_price; $item['L_PAYMENTREQUEST_' . $counter . '_QTY' . $ticket_counter] = $qty * $price_multiplier[$event_id]; $counter++; } } } } if (!$parallel_pay) { if ($tax > 0 && $line_item_surcharge !== false) { //$discount_description = epl_get_element( 'discount_description', $cart_totals['money_totals'], null ); foreach ($_SESSION['__epl'][$regis_id]['_events'] as $event_id => $event_totals) { $sc = epl_get_element_m('surcharge', 'money_totals', $event_totals, 0); if ($sc == 0) { continue; } $this->ecm->setup_event_details($event_id); $surcharge_label = epl_get_element('_epl_surcharge_label', $event_details, epl__('Surcharge')); $item['L_PAYMENTREQUEST_0_NAME' . $counter] = $surcharge_label; //$item['L_PAYMENTREQUEST_0_DESC' . $counter] = $discount_description; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = $sc; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; $requestParams['PAYMENTREQUEST_0_ITEMAMT'] += $sc; $counter++; } } if ($discount_amount > 0) { $discount_description = epl_get_element('discount_description', $cart_totals['money_totals'], null); $discount_description = substr($discount_description, 0, 126); $item['L_PAYMENTREQUEST_0_NAME' . $counter] = $discount_description; //$item['L_PAYMENTREQUEST_0_DESC' . $counter] = $discount_description; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = -1 * $discount_amount; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; } $alt_total_due = epl_get_element_m('pay_deposit', 'money_totals', $cart_totals) == 1; if ($alt_total_due > 0) { $counter++; $balance_due_desc = epl__('Deposit Offset. Due at a later date.'); $balance_due_desc = substr($balance_due_desc, 0, 126); $balance_offset = get_the_regis_total_amount(false) - $amount; $item['L_PAYMENTREQUEST_0_NAME' . $counter] = $balance_due_desc; //$item['L_PAYMENTREQUEST_0_DESC' . $counter] = $discount_description; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = -1 * $balance_offset; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; } $payment_data = epl_get_regis_payments(); if (!empty($payment_data)) { if (count($payment_data) > 0) { foreach ($payment_data as $time => $p) { $counter++; $payment_made_description = epl__('Offset for payment made on: ') . epl_formatted_date($p['_epl_payment_date']); $payment_made_description = substr($payment_made_description, 0, 126); $item['L_PAYMENTREQUEST_0_NAME' . $counter] = $payment_made_description; //$item['L_PAYMENTREQUEST_0_DESC' . $counter] = $discount_description; //$item['L_PAYMENTREQUEST_0_NUMBER' . $counter] = $ticket_id; $item['L_PAYMENTREQUEST_0_AMT' . $counter] = -1 * $p['_epl_payment_amount']; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; } } } if (($donation_amount = epl_get_element_m('donation_amount', 'money_totals', $cart_totals, 0)) > 0) { $counter++; $item['L_PAYMENTREQUEST_0_NAME' . $counter] = epl__('Donation'); $item['L_PAYMENTREQUEST_0_AMT' . $counter] = $donation_amount; $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; } if (($original_total = epl_get_element_m('original_total', 'money_totals', $cart_totals, 0)) > 0) { $counter++; $item['L_PAYMENTREQUEST_0_NAME' . $counter] = epl__('Offset'); $item['L_PAYMENTREQUEST_0_AMT' . $counter] = -1 * ($original_total - $orderParams['PAYMENTREQUEST_0_AMT']); $item['L_PAYMENTREQUEST_0_QTY' . $counter] = 1; } } $request = $requestParams + $item + $orderParams; $request = apply_filters('epl_express_checkout_do_payment_request_params', $request); $response = $paypal->request('DoExpressCheckoutPayment', $request); if (is_array($response) && $response['ACK'] == 'Success') { $payment_amount = $response['PAYMENTINFO_0_AMT']; $counter = 0; if ($parallel_pay) { $payment_amount = 0; foreach ($tickets as $event_id => $ind_tickets) { $this->ecm->setup_event_details($event_id); foreach ($ind_tickets as $ticket_id => $ticket_qty) { $qty = is_array($ticket_qty) ? array_sum($ticket_qty) : $ticket_qty; if ($qty > 0) { $payment_amount += epl_get_element('PAYMENTINFO_' . $counter . '_AMT', $response, 0); $counter++; } } } } $data['post_ID'] = $post_ID; $data['_epl_grand_total'] = $cart_totals['money_totals']['grand_total']; $data['_epl_payment_amount'] = $payment_amount; $data['_epl_payment_date'] = current_time('mysql'); $data['_epl_payment_method'] = $this->erm->get_payment_profile_id(); $data['_epl_transaction_id'] = $response['PAYMENTINFO_0_TRANSACTIONID']; $data['_epl_prediscount_total'] = epl_get_element('pre_discount_total', $cart_totals['money_totals'], 0); $data['_epl_discount_amount'] = epl_get_element('discount_amount', $cart_totals['money_totals'], 0); $data = apply_filters('epl_pp_exp_response_data', $data, $response); $this->erm->update_payment_data($data); return true; //echo "DONE"; } else { $error = 'ERROR: ' . $response['L_SHORTMESSAGE0'] . '. ' . $response['L_LONGMESSAGE0']; echo EPL_Util::get_instance()->epl_invoke_error(0, $error, false); } return false; }
function get_remote_help() { if (isset($_REQUEST['epl_get_help']) && $_REQUEST['epl_get_help'] == 1) { $r = wp_remote_post('http://www.wpeventsplanner.com/?get_remote_help=1', array('body' => array('help_context' => $_POST['section'], 'api_key' => '14654654dsfd4g54d5sd4fgsdfg'))); $r = wp_remote_retrieve_body($r); $r = json_decode($r); echo EPL_Util::get_instance()->epl_response(array('html' => $r->help_text)); die; } }