示例#1
0
if (isset($_SESSION['espresso_session']['id'])) {
    unset($_SESSION['espresso_session']['id']);
}
define('FPDF_FONTPATH', EVENT_ESPRESSO_PLUGINFULLPATH . 'class/fpdf/font/');
require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'class/fpdf/fpdf.php';
require_once dirname(__FILE__) . '/function.pdf.php';
//Added by Imon
global $espresso_premium;
if ($espresso_premium != true) {
    return;
}
global $wpdb, $org_options;
$invoice_payment_settings = get_option('event_espresso_invoice_payment_settings');
//Added by Imon
$multi_reg = false;
$registration_id = espresso_return_reg_id();
$admin = isset($_REQUEST['admin']) ? $_REQUEST['admin'] : false;
$registration_ids = array();
$c_sql = "select * from " . EVENTS_MULTI_EVENT_REGISTRATION_ID_GROUP_TABLE . " where registration_id = '{$registration_id}' ";
//echo $c_sql;
$check = $wpdb->get_row($c_sql);
if ($check !== NULL) {
    $registration_id = $check->primary_registration_id;
    $registration_ids = $wpdb->get_results("select registration_id from " . EVENTS_MULTI_EVENT_REGISTRATION_ID_GROUP_TABLE . " where primary_registration_id = '{$registration_id}' ", ARRAY_A);
    $multi_reg = true;
} else {
    $registration_ids[] = array("registration_id" => $registration_id);
}
$attendees = $wpdb->get_results("SELECT a.*, e.event_name FROM " . EVENTS_ATTENDEE_TABLE . " a JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id=a.event_id WHERE a.registration_id ='" . $registration_id . "' order by a.id LIMIT 0,1 ");
foreach ($attendees as $attendee) {
    $attendee_id = $attendee->id;
示例#2
0
function espresso_export_ticket()
{
    do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
    //Version 2.0
    if (isset($_REQUEST['ticket_launch']) && $_REQUEST['ticket_launch'] == 'true') {
        echo espresso_ticket_launch($_REQUEST['id'], $_REQUEST['r_id']);
    }
    //End Version 2.0
    //Deprecated version 1.0
    //Export PDF Ticket
    if (isset($_REQUEST['download_ticket']) && $_REQUEST['download_ticket'] == 'true') {
        if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php")) {
            require_once EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php";
            //Old url string
            $r_id = espresso_return_reg_id();
            //Attendee id
            $a_id = isset($_REQUEST['id']) && !empty($_REQUEST['id']) ? $_REQUEST['id'] : false;
            if ($a_id != false && $r_id != false) {
                espresso_ticket($a_id, $r_id);
            }
        }
    }
    //End Deprecated version 1.0
}
function event_espresso_txn()
{
    ob_start();
    global $wpdb, $org_options, $espresso_content;
    do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
    do_action('action_hook_espresso_transaction');
    $active_gateways = get_option('event_espresso_active_gateways', array());
    if (empty($active_gateways)) {
        $subject = __('Website Payment IPN Not Setup', 'event_espresso');
        $body = sprintf(__('The IPN for %s at %s has not been properly setup and is not working. Date/time %s', 'event_espresso'), $org_options['organization'], home_url(), date('g:i A'));
        wp_mail($org_options['contact_email'], $subject, $body);
        return;
    }
    /*foreach ($active_gateways as $gateway => $path) {
    		event_espresso_require_gateway($gateway . "/init.php");
    	}*/
    $payment_data = array('attendee_id' => NULL);
    $payment_data['attendee_id'] = apply_filters('filter_hook_espresso_transactions_get_attendee_id', '');
    if (empty($payment_data['attendee_id'])) {
        echo "An error occurred. No ID or an invalid ID was supplied.";
    } else {
        $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
        if (espresso_return_reg_id() == false || $payment_data['registration_id'] != espresso_return_reg_id()) {
            wp_die(__('There was a problem finding your Registration ID', 'event_espresso'));
        }
        $payment_data = apply_filters('filter_hook_espresso_transactions_get_payment_data', $payment_data);
        espresso_log::singleton()->log(array('file' => __FILE__, 'function' => __FUNCTION__, 'status' => 'Payment for: ' . $payment_data['lname'] . ', ' . $payment_data['fname'] . '|| registration id: ' . $payment_data['registration_id'] . '|| transaction details: ' . $payment_data['txn_details']));
        $payment_data = apply_filters('filter_hook_espresso_update_attendee_payment_data_in_db', $payment_data);
        //add and then immediately do action, so developers can modify this behavior on 'after_payment'
        add_action('action_hook_espresso_email_after_payment', 'espresso_email_after_payment');
        do_action('action_hook_espresso_email_after_payment', $payment_data);
        extract($payment_data);
        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php")) {
            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php";
            //This is the path to the template file if available
        } else {
            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_overview.php";
        }
    }
    $_REQUEST['page_id'] = $org_options['return_url'];
    ee_init_session();
    $espresso_content = ob_get_contents();
    ob_end_clean();
    add_shortcode('ESPRESSO_TXN_PAGE', 'espresso_return_espresso_content');
    return $espresso_content;
}
function event_espresso_pay()
{
    ob_start();
    do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
    global $wpdb, $org_options, $espresso_content;
    $payment_data = array('attendee_id' => '');
    $payment_data['attendee_id'] = apply_filters('filter_hook_espresso_transactions_get_attendee_id', $payment_data['attendee_id']);
    $REG_ID = espresso_return_reg_id();
    if ($REG_ID != false && empty($payment_data['attendee_id'])) {
        //we're assuming there is NO payment data in this request, so we'll just
        //prepare the $payment_data for display only. No processing of payment etc.
        $SQL = "SELECT id FROM " . EVENTS_ATTENDEE_TABLE . " WHERE registration_id='" . $REG_ID . "' ORDER BY id LIMIT 1";
        $payment_data['attendee_id'] = $wpdb->get_var($wpdb->prepare($SQL, NULL));
        $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
    } elseif (!empty($payment_data['attendee_id'])) {
        $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
        if ($REG_ID == false || $payment_data['registration_id'] != $REG_ID) {
            wp_die(__('There was a problem finding your Registration ID', 'event_espresso'));
        }
        if ($payment_data['amount_owed'] > 0.0 && $payment_data['payment_status'] != 'Refund') {
            $payment_data = apply_filters('filter_hook_espresso_thank_you_get_payment_data', $payment_data);
            $payment_details = array('file' => __FILE__, 'function' => __FUNCTION__, 'status' => 'Payment for: ' . $payment_data['lname'] . ', ' . $payment_data['fname'] . '|| attendee_session id: ' . $payment_data['attendee_session'] . '|| registration id: ' . $payment_data['registration_id'] . '|| transaction details: ' . $payment_data['txn_details']);
            espresso_log::singleton()->log($payment_details);
            $payment_data = apply_filters('filter_hook_espresso_update_attendee_payment_data_in_db', $payment_data);
            add_action('action_hook_espresso_email_after_payment', 'espresso_email_after_payment');
            do_action('action_hook_espresso_email_after_payment', $payment_data);
        }
    }
    if (!empty($payment_data['attendee_id'])) {
        extract($payment_data);
        //printr( $payment_data, '$payment_data  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php")) {
            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php";
            //This is the path to the template file if available
        } else {
            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_overview.php";
        }
        if ($payment_status != "Completed") {
            echo '<a name="payment_options" id="payment_options"></a>';
            if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "return_payment.php")) {
                require_once EVENT_ESPRESSO_TEMPLATE_DIR . "return_payment.php";
                //This is the path to the template file if available
            } else {
                require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/return_payment.php";
            }
        }
    }
    if (isset($payment_data['attendee_session'])) {
        event_espresso_clear_session_of_attendee($payment_data['attendee_session']);
    }
    $_REQUEST['page_id'] = $org_options['return_url'];
    $espresso_content = ob_get_contents();
    ob_end_clean();
    add_shortcode('ESPRESSO_PAYMENTS', 'espresso_return_espresso_content');
    return $espresso_content;
}
示例#5
0
function event_espresso_pay()
{
    do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
    global $wpdb, $org_options;
    $payment_data = array('attendee_id' => '');
    $active_gateways = get_option('event_espresso_active_gateways', array());
    foreach ($active_gateways as $gateway => $path) {
        event_espresso_require_gateway($gateway . "/init.php");
    }
    $payment_data['attendee_id'] = apply_filters('filter_hook_espresso_transactions_get_attendee_id', $payment_data['attendee_id']);
    $REG_ID = espresso_return_reg_id();
    if ($REG_ID != false && empty($payment_data['attendee_id'])) {
        $SQL = "SELECT id FROM " . EVENTS_ATTENDEE_TABLE . " WHERE registration_id='" . $REG_ID . "' ORDER BY id LIMIT 1";
        $payment_data['attendee_id'] = $wpdb->get_var($wpdb->prepare($SQL, NULL));
        $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
    } elseif (!empty($payment_data['attendee_id'])) {
        $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
        $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
        if ($REG_ID == false || $payment_data['registration_id'] != $REG_ID) {
            wp_die(__('There was a problem finding your Registration ID', 'event_espresso'));
        }
        if ($payment_data['payment_status'] != 'Completed') {
            $payment_data = apply_filters('filter_hook_espresso_thank_you_get_payment_data', $payment_data);
            $payment_details = array('file' => __FILE__, 'function' => __FUNCTION__, 'status' => 'Payment for: ' . $payment_data['lname'] . ', ' . $payment_data['fname'] . '|| attendee_session id: ' . $payment_data['attendee_session'] . '|| registration id: ' . $payment_data['registration_id'] . '|| transaction details: ' . $payment_data['txn_details']);
            espresso_log::singleton()->log($payment_details);
            $payment_data = apply_filters('filter_hook_espresso_update_attendee_payment_data_in_db', $payment_data);
            do_action('action_hook_espresso_email_after_payment', $payment_data);
        }
    }
    if (!empty($payment_data['attendee_id'])) {
        extract($payment_data);
        //printr( $payment_data, '$payment_data  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php")) {
            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_overview.php";
            //This is the path to the template file if available
        } else {
            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_overview.php";
        }
        if ($payment_status != "Completed") {
            echo '<a name="payment_options" id="payment_options"></a>';
            if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "return_payment.php")) {
                require_once EVENT_ESPRESSO_TEMPLATE_DIR . "return_payment.php";
                //This is the path to the template file if available
            } else {
                require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/return_payment.php";
            }
        }
    }
    $_REQUEST['page_id'] = $org_options['return_url'];
    unset($_SESSION['espresso_session']['id']);
    ee_init_session();
}
/**
 * handles payment IPN info from google just like it would be handled in the
 * transactiosn shortcode, but this function should be hoooked to the plugins_loaded
 * hook, thus executing much before any other output is generated.
 * This is necessary because google requires us to send a very specific xml resposne
 * to their ipn, not html (which is what we'd ahve to return if this were called
 * during a shortcode)
 * @return type 
 */
function espresso_google_run_transaction_code_before_shortcode()
{
    if (array_key_exists('type', $_REQUEST) && array_key_exists('ipn', $_REQUEST) && $_REQUEST['type'] == 'google_checkout' && $_REQUEST['ipn'] == 'true') {
        event_espresso_require_gateway("process_payments.php");
        $payment_data['attendee_id'] = apply_filters('filter_hook_espresso_transactions_get_attendee_id', '');
        if (isset($payment_data['attendee_id'])) {
            $payment_data = apply_filters('filter_hook_espresso_prepare_payment_data_for_gateways', $payment_data);
            $payment_data = apply_filters('filter_hook_espresso_get_total_cost', $payment_data);
            $payment_data = apply_filters('filter_hook_espresso_prepare_event_link', $payment_data);
            if (espresso_return_reg_id() == false || $payment_data['registration_id'] != espresso_return_reg_id()) {
                return;
            }
            $payment_data = espresso_process_google_checkout_ipn($payment_data);
            $payment_data['txn_details'] = serialize($_REQUEST);
            espresso_log::singleton()->log(array('file' => __FILE__, 'function' => __FUNCTION__, 'status' => 'Payment for: ' . $payment_data['lname'] . ', ' . $payment_data['fname'] . '|| registration id: ' . $payment_data['registration_id'] . '|| transaction details: ' . $payment_data['txn_details']));
            $payment_data = apply_filters('filter_hook_espresso_update_attendee_payment_data_in_db', $payment_data);
            //add_action('action_hook_espresso_email_after_payment', 'espresso_email_after_payment');//this line shouldn't be necessary because ofa refactor I did where this
            //is added process_payments file, but apparently it hasn't gotten integrated into trunk yet...
            do_action('action_hook_espresso_email_after_payment', $payment_data);
            die;
        }
    }
}