Code Monkey home page Code Monkey logo

event-espresso-core's Introduction

Event Espresso Core

Latest Tag Travis PHP Dependabot Status WordPress License Join Chat

Event Espresso 4 - Event Ticketing and Registration System

Event Espresso is an event ticketing and registration platform for WordPress. Event Espresso makes it easy for you to register attendees for classes, workshops, events, trainings, conferences or concerts, all from your WordPress website. Event Espresso events are created from the WordPress admin area. You can create signup forms to collect information about your attendees, accept payments, and create reports.

Support License

Purchase a Premium Support License to get access to more features (including one-click upgrades, growing list of add-ons).

Installing Event Espresso

Event Espresso can be installed via the WordPress Dashboard or through FTP or SFTP.

View Event Espresso 4 Install Documentation →

Documentation

Resources on Event Espresso 4 for a beginner to advanced users.

View Event Espresso 4 Documentation →

Notable changes for each released version of the project can be found in our changelog

Mobile Event Apps

The Event Espresso 4 check-in & ticket scanning event app is available for Android and Apple devices.

View Mobile Event App Documentation →

Newsletter

Be the first to know when we ship new features ... signup here.

Community Chat

Join a real-time community chat group for professionals that are leading the way in events from event management, event technology and event marketing to work-life balance.

Join the Discussion →

Developers

This is the full version of the plugin and provides everything that you need to sell tickets, collect payments, and manage events all from within your WordPress dashboard.

Buy a Premium Support License to get access to more features (including one-click upgrades, growing list of add-ons).

Note: for non stable versions. We currently use minor versioning numbers such as (4.1.rc.125) for rapid development occurring. On master, minor versions represent minor releases i.e. (4.1.1.p) that typically only include bug fixes and minor features. Releases including bigger features bump the second number (i.e. 4.1.1 -> 4.2.0 ). "rc" in the version number indicates that it is a non-stable release candidate version. "p" in the version number indicates a released version (usually only tags will have .p) In the list below we do not include minor version numbers.

This is the Core for Event Espresso 4. This README.md file is targeted for display with our GitHub repo. For detailed information via traditional readme, see the readme.txt file.

Extra: The code structure and phpdoc parsed documentation can be found at http://code.eventespresso.com

Developer Targeted Documentation can be found at http://developer.eventespresso.com/docs Developer News & Updates can be found at http://developer.eventespresso.com

Event Espresso Releases

At Event Espresso we follow a set pattern for releases:

  1. Active development for new features happens on a FET/{ticket-number}/{description} branch. We continually merge master into the feature branch while its in development. Once its complete, then testing is done on it and its merged back to master ready for release.
  2. Bug fixes etc. are done on a BUG/{ticket-number}/{description} branch. Same methodology is used as with Feature branches.
  3. Stable releases are tagged both with a tests folder and without the tests folder.
  4. Master is technically always production ready and release ready but may not be equal to what the current stable release is (that is what tags are for).

Testing

For all testers on GitHub, please take note of the following when reporting issues.

  1. There is a difference between a feature and a bug, we consider a bug is something that reveals brokenness in intended functionality. A feature, is something beyond intended functionality. To help determine the difference, think about your issue like this, "I know A does C, however I wish it did D." If you find yourself saying that, its a feature. For Event Espresso, GitHub is not the place to suggest a new feature UNLESS you've already got a pull request to implement it (see pull requests section below). Info on sponsoring new features can be found here. If you aren't sure whether something is a feature or bug feel free to post the issue - however we give priority to bug issues here.

  2. UI/UX issues may be considered a bug but not if it requires a major change in design. Feel free to report things you find confusing or needing improvement however reports accompanied by a pull request will likely get faster attention.

  3. Report your issue as clearly as possible. By "clear" we mean:

    i. Specify the branch this occurred in.

    ii. Be specific about the steps you took to reproduce.

    iii. Feel free to use screenshots/screencasts to illustrate

    iv. Use URLs for the page the issue to place on where possible.

  4. Don't "bump" bug reports if we don't respond right away. We see every report coming in, but we'll only reply if we need clarification or if we think its invalid. Otherwise, we're likely working on a fix and the issue will be updated when the fix is complete.

Pull Requests

One of the reasons we published this repository on GitHub is because we wanted to open up EE development to 3rd party developers who might want to contribute to the codebase. GitHub makes this really easy to do so via pull requests. If you don't know what pull requests are, please read up on them via the GitHub help/documentation.

Here's how we deal with pull requests for our repo:

  1. Any new FEATURES in a pull request should be based off of the master branch. If your feature pull request is based off any other branch it will not be considered.
  2. Any BUGFIX pull requests should be based off of the branch the bug was found. Please verify if it is in master before submitting the pull request. If it is in reproducible on master, we'd prefer to have the pull request based off master.
  3. We greatly appreciate any pull-requests submitted for consideration, but please understand we are very selective in what we decide to include in EE core. If the "feature" is something that expands too much on our design decisions for EE core then we may suggest you develop your pull request into an add-on for EE.

You may find our post on contributing to open source software helpful.

event-espresso-core's People

Contributors

apina avatar brianhogg avatar cliffordp avatar dependabot-preview[bot] avatar dependabot[bot] avatar dwlorimer avatar garthkoyle avatar hoseinrafiei avatar jonasbrand avatar jonathanjulian avatar joshfeck avatar jryven avatar knazart avatar landor avatar lorenzocaum avatar manzoorwanijk avatar mnelson4 avatar mrjonwilson avatar nerrad avatar nickstrak avatar pebblo avatar rafaelgou avatar raphaelkross avatar richardtape avatar robert-osborne avatar rogiervdl avatar sidharrell avatar tareq1988 avatar tn3rb avatar veraxus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

event-espresso-core's Issues

ESPRESSO_TXN_PAGE shortcode

Not sure if this is an issue or is a known issue but the ESPRESSO_TXN_PAGE shortcode on the transaction page isn't working and I don't see a corresponding function in the shortcodes.php file.

Are you phasing out the page itself or something similar?

fix attendee list template and corresponding shortcodes

http://eventespresso.com/wiki/shortcodes-template-variables/#attendee-list

[LISTATTENDEES]
[LISTATTENDEES limit="30"] //Number of events to show on the page
[LISTATTENDEES paid_only="true"] //Show completed and pending registrations only
[LISTATTENDEES show_expired="true"] //Show expired events
[LISTATTENDEES show_deleted="true"] //Show deleted events
[LISTATTENDEES show_secondary="true"] //Show secondary/backup events
[LISTATTENDEES show_gravatar="true"] //Show a Gravatar of the attendee
[LISTATTENDEES show_recurrence="false"] //Exclude recurring events
[LISTATTENDEES event_identifier="your_event_identifier"] //Show a single event using the event identifier
[LISTATTENDEES category_identifier="your_category_identifier"] //Show a group of events in a category using the category identifier

Request a filter for $template_args

It would be nice if it was possible to hook into the $template_args before they're passed to a template. In a couple instances I had to duplicate an entire template when I just wanted to modify one piece of data (like who an Invoice should be addressed to).

The most abstracted place to put this filter would be in EEH_Template::locate_template() before the template is loaded:

apply_filters( 'FEEH_Template__filter_template_args', $template_args, $templates );

The downside to this is that the only way to figure out the context is to look at the paths inside $templates, which I suspect is prone to changing over time. I don't have a better idea for getting around this, though.

Plugin hooks

Hi,

I'm writing a coupon plugin for EE.
On the admin site the hooks are pretty straightforward. I'm using using extra_meta to save the coupons for each event.
Wondering if there are any hooks i can use, without modifying the core source, to check the coupon on registration and add a discount if it exists.

Mock Payment Gateways

I'm trying to use the skeleton payment classes which are provided in the repo. In particular, the Offsite payment class.

I added the payment_methods directory under the wp-content/plugins directory in WP (as advised in the online documentation) but nothing showed up in the Plugins section of Wp Admin.

So, I added some standard plugin comments to the files to see if that worked, but no joy. I'm not sure if WP actually parses sub-directories?

Next, I tried with just the 2 files for the Offsite method directly in the payment_methods directory and the plugin then showed up in WP Admin. However, when I try to activate it I get fatal errors saying that it cant find the base classes that it is trying to extend.

The documentation suggests that all you need to do is to copy the payment_methods directory into the plugin directory and it will 'just work' - but that doesn't seem to be the case.

I also noticed that the comments that are included in the files are slightly wrong. For example, in the following class file:

EEG_Mock_offsite.gateway.php

There are comments:
/**
*

  • EEG_Mock_Onsite
    *
    and
    // End of file EEG_Mock_Onsite.php

Whereas these should actually say 'Offsite'

Any assistance that you can provide in order to get to a point where I can activate and start custimising the example code would be hugely appreciated.

"Duplicate an Event" missing from V4

Way back in V3, we used to have the ability to duplicate an event. That was a handy time-saver, especially (but not only) for setting up Waitlist events.

I don't see it in 4.0.

Editing any question causes fatal error.

To view this go to:

Management - Registration Form.

Open any question to edit. Press Save.

You'll see an error similar to this:

Notice: Array to string conversion in C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-4.0-BETA\includes\classes\EE_Base_Class.class.php on line 244
An EE_Error exception was thrown! code: CLS-BSCLS-SANFIEINP-245
"Allowed values for 'Question Type' are Array"
C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-4.0-BETA\includes\classes\EE_Base_Class.class.php ( line no: 245 )

When returning to Registration form from this point on you will see an 'Array to string conversion' and a 'fatal error'.

Events using admin.php instead of edit.php

Hi,

Espresso_events is a CPT so shouldn't it be using standard edit.php instead of going through admin.php?page=espresso_events&action=edit ?

I'm asking this as typical hooks such as shortcode icon adding doesn't work - with themes from WooThemes and some popular plugins like TablePress. ( I asked on support forums about this http://eventespresso.com/topic/ee4-visual-editor-not-hooking-custom-tinymce-plugins/ )

These plugins/themes typically check for the following,

if ( ( current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' ) ) && get_user_option( 'rich_editing' ) == 'true' && ( in_array( $pagenow, array( 'post.php', 'post-new.php', 'page-new.php', 'page.php' ) ) ) )  {

of course I edited it to work with event espresso by doing the following

        if ( ( current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' ) )
            && get_user_option( 'rich_editing' ) == 'true'
            && ( in_array( $pagenow, array( 'post.php', 'post-new.php', 'page-new.php', 'page.php' ) )
                || ( $_GET['page'] == 'espresso_events' ) ) && $_GET['action'] == 'edit' )  {

However, I still feel that Event Espresso should follow the norm - so that typical plugins don't fail to hook to TinyMCE.

Any thoughts?

Timezone is Africa/Khartoum

Hi,

Checking the datetime object retrieved via espresso_event_date_obj reveals that the timezone being used is for some reason Africa/Khartoum.

"DTT_EVT_start" and "DTT_EVT_end" in the global $post variable for an event is therefore incorrect. It should take into account what timezone has been chosen by the user in settings > general.

I just made a pull req to development branch which atleast fixes the template tags so I can retrieve the correct datetimes via those functions. But It'd be nice to be able to simply use the post object since it's already available and thus saves some resources.

Best regards
/Jonathan

Apostrophes in Organization Name cause \ to multiple in test emails

If the Organization Name in the settings includes an apostrophe, like Nate's Thing, the name is escaped with a \'s in the subject of the test email that is sent from the messages interface. When the page reloads, the \'s will be tripled to \\\'s. This multiplies with each test email sent, so that after several tests it's easy to have so many \ that it can cause memory shortages and make the email un-openable in email clients.

The extra \s persist even if you browse away and come back.

I was unable to test this on master but can reproduce it reliably on 4.4.6.p.

Return HTML from callback URL?

Hi,
We're using the example new-payment-method code to develop a payment gateway for a Worldpay hosted (offsite) payment installation. We're passing the callback URL that is generated by EE to Worldpay via the POST parameters.
Worldpay has functionality whereby it will render any HTML that is returned by the callback URL and we've used this in other Worldpay gateway implementations (non EE) such that the callback script will examine the data sent from Worldpay and then send an HTML snippet that will redirect the user back to a page on the merchant's site - either a 'Thank you' page on success or a 'Problem...' page if the payment is not authorised.
Is there any way that we can send HTML back to Worldpay via the callback/payment processing functionality in EE ?

Also, just to confirm that we should be adding the following to the constructor of the EE_PMT_New_Payment_Method_Offsite class?

$this->_uses_separate_IPN_request=true;

Thanks

Problems with email templates

Problems:
Social buttons aren't appearing as in Outlook as in WYSIWYG
Email links aren't working

Solution:
Styles need to be inlined: http://zurb.com/ink/inliner.php
add 'mailto:' in templates before any default email fields

Sorry, but I'm not sure where these are stored in the file system

Ticket price gets 'rewritten' wrongly likely because of float sanitisation

Hi,

Ticket 1 When trying to save a Ticket Price - Manually keying in (eg) 2500 works as expected.

The system then rewrites that as a float, becoming 2,500.00 upon re-entering the edit screen.

*Ticket 2 * When I decide to create a second ticket, and key in (eg) 3500, this ticket saves as expected.

However, ticket one ends up being saved again as $2 instead of $2500.

This behaviour is also the same, if you simply save the ticket price once, go back to the event, edit any event data (except price which should be in the float format) and save. The price then takes any number that is before the comma.

IE - 2,500.00 becomes 2. 3,500.00 becomes 3.

I've tested this on my EE 4.4.4 install and it does not happen.

This only happens with EE 4.4.5, WP 4.0.1 (and I've reinstalled the plugin, plus disabled all other plugins and tested with default 2014 theme)

Offsite Payment Gateway - $payment object methods & properties

Hi,
I'm using an offsite payment method and I need to pass a an EE transaction id through to an offsite payment gateway so that it comes back via a callback when a payment is processed - and can then be used to retrieve the payment for processing in handle_payment_update().

So, in set_redirection_info() I would have something like:

$payment->set_redirect_args(
array(
// other stuff here...
'callbackurl' => $notify_url,
'transaction_id' => // ???
)
);

And then in handle_payment_update()

$payment = $this->_pay_model->get_payment_by_txn_id_chq_nmbr($update_info[ 'transaction_id' ] );

Then I can set

Is there any documentation on any getter methods available on the $payment object?

I know that I can use: 'transactionamount' => $payment->amount();
and: $payment->transaction()
which method(s) would I call to get the transaction id ?

Apologies if there is documentation on this - just point me to it.

Thanks

Offline Payment methods.

When an attendee registers and pays with (I'm my test Cheque) there Registration is then pending which counts towards the total attendee's. We don't use offline payments currently (well we do but not offered online) so I have never noticed this in 3.1.x (which I now know is also the same) but I can see an issue with this.

May not be a problem for large events but we run plenty of small events (20-70 attendees weekly) and have suspected for a while now that competitors are registering (obviously without paying) to attempt to either cause annoyance or 'close' the event. (We get a lot of registrations with names like 'xxxxxxxxxxxxx' or 'hwhwhwhwhwhw', random emails and the maximum amount of attendees our group bookings allow - petty, but happens)

So my suggestion for this would be an option to pre-approve offline payments only rather than all?

*Sorry if this should go on the forum just didn't want to draw attention to it if its to go on a back burner or not enough of an issue currently.

"Select quantity" alert message not firing up when using ESPRESSO_TICKET_SELECTOR in index page

Using the [ESPRESSO_TICKET_SELECTOR event_id='xxx'] shortcode we notice a very strange behaviour. We use this shortcode to allow user to show a styled ticket selector form inside our themes, eg.
http://www.showthemes.com/dummy-demo

The problem is:
if you click Register Now without selecting some tickets quantities a message should appear alerting the user that he has to select at least one ticket. But this not happens.
Otherwise, if I include the shortcode inside a test page, it appears:

http://showthemes.com/dummy-demo/?page_id=566

Consider that:

  1. The user can insert the shortcode in a dedicated section (inside a widget) and the home page will show it with the "do_shortcode" WP function;
  2. If I use the same "do_shortcode" function in a Page or in a Post, the "No quantity" alert shows with no problem.

We notice that:

  1. in both pages the same scripts are enqueued;
  2. in single page/post some DOM elements are rendered at the page load, eg:

This element is the container where the alert messages are put.
In home page, this elements are not rendered.

pre_get_posts filter incorrectly assumes EE post_type *possible bug

Related links:
http://code.eventespresso.com/classes/EE_CPT_Strategy.html#method_pre_get_posts
https://github.com/ericandrewlewis/WP_Query_Multisite
https://github.com/jonathan-dejong/Network-posts-widget

I've created a plugin which creates a widget that displays the most recent network wide posts (link above). Now it seems that EE tries to inject it's own "supercharge" into the query. The only filter I could track down was the one in the link above (but its possible that its not related).

So when EE tries to add it's own event object to my query it fails since EE is only installed on the main site

WordPress database error för Table 'kfsk_db.wp_2_esp_attendee_meta' doesn't exist förfrågan SELECT SQL_CALC_FOUND_ROWS tables.* FROM ( SELECT  wp_2_posts.*, wp_2_esp_attendee_meta.* , '2' AS site_ID FROM wp_2_posts  LEFT JOIN wp_2_esp_attendee_meta ON ( wp_2_esp_attendee_meta.ATT_ID = wp_2_posts.ID )  WHERE 1=1  AND wp_2_posts.post_type = 'post' AND (wp_2_posts.post_status = 'publish' OR wp_2_posts.post_status = 'cancelled' OR wp_2_posts.post_status = 'postponed' OR wp_2_posts.post_status = 'sold_out' OR wp_2_posts.post_author = 4 AND wp_2_posts.post_status = 'private')   ) tables ORDER BY tables.post_date DESC LIMIT 0, 5 skapat av require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/kfsk/page.php'), get_sidebar, locate_template, load_template, require_once('/themes/kfsk/sidebar.php'), dynamic_sidebar, call_user_func_array, WP_Widget->display_callback, Network_Posts_Widget->widget, WP_Query_Multisite->__construct, WP_Query->query, WP_Query->get_posts

I have a pretty much identical query in the theme on front-page.php which works perfectly. EE doesn't try to do anything to it. So there must be something special with the plugins query? Perhaps some other hook that jumps in which doesnt look at the post_type?

Thank You Page Errors

Notice: Undefined index: e_reg_url_link in C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-master\includes\classes\EE_Thank_You_Page.class.php on line 62

Notice: Undefined index: e_reg_url_link in C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-master\includes\models\EEM_Transaction.model.php on line 509

Catchable fatal error: Argument 1 passed to EEM_Gateways::thank_you_page_logic() must be an instance of EE_Transaction, null given, called in C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-master\includes\classes\EE_Thank_You_Page.class.php on line 92 and defined in C:\xampp\htdocs\eetesting\wp-content\plugins\event-espresso-core-master\includes\models\EEM_Gateways.model.php on line 901

The above errors occur when viewing the Thank You page from the navigation bar.

Calendar addon creates broken payment urls

EE Version 4.6.0.alpha.014
EE Calendar Version 3.2.1.p
WordPress 4.0.1

The EE version works as expected. However, when I install the Calendar add on, I get the following error, and then the EE pages only show the shortcodes, not the output of those shortcodes.

Payment Method 'Bank' had a broken button url, so it was reset
Payment Method 'Cash' had a broken button url, so it was reset
Payment Method 'Check' had a broken button url, so it was reset
Payment Method 'Credit Card' had a broken button url, so it was reset
Payment Method 'Debit Card' had a broken button url, so it was reset
Payment Method 'Money Order' had a broken button url, so it was reset
Payment Method 'Paypal' had a broken button url, so it was reset

Improve gateway support

Within the Pronamic iDEAL plugin we add an iDEAL gateway (for a lot of providers and iDEAL variants) to the Event Espresso plugin. We don't like it that the gateways have to be in the Event Espresso folders. We had to add an fix in our plugin to void error on the 'require_once' calls to the 'init.php' files.

https://github.com/eventespresso/event-espresso-core/blob/master/gateways/process_payments.php#L22
https://github.com/eventespresso/event-espresso-core/blob/master/gateways/process_payments.php#L63

Our fix:
https://github.com/pronamic/wp-pronamic-ideal/blob/master/classes/Pronamic/EventEspresso/IDeal/AddOn.php#L50

It would be nice if developers can add gateways to the Event Espresso plugin without the 'init.php' requirment in the Event Espresso folders.

Event Espresso - Payment Methods - Settings Page - Header already sent

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\eetesting\wp-admin\menu-header.php:80) in C:\xampp\htdocs\eetesting\wp-includes\pluggable.php on line 876

Get this error after hitting the settings and hitting save. Vanilla install, only plugin installed are default and ee.

Line breaks in templates converted to <br>

I noticed that line breaks in several of the PHP/HTML templates get converted to <br> elements. The two I wrote down were on the Single Page Checkout (which I believe is already being rewritten) and on the Thank You page (after registration).

An example of this can be seen in registration_page_attendee_information.template.php. These lines:

        <input type="hidden" id="spco-attendee_information-action" name="ajax_action" value="espresso_<?php echo $reg_step_ajax_action;?>" />
        <input type="hidden" id="spco-attendee_information-noheader" name="noheader" value="" />
        <input type="hidden" id="spco-attendee_information-next-step" name="next_step" value="<?php echo $next_step; ?>" />
        <input type="hidden" id="spco-reg_url_link" name="e_reg_url_link" value="<?php echo $reg_url_link;?>" />
        <input type="hidden" id="spco-revisit" name="revisit" value="<?php echo $revisit;?>" />

Lead to the following output (<br>s on the end):

<input type="hidden" id="spco-attendee_information-action" name="ajax_action" value="espresso_process_attendee_information" /><br />
<input type="hidden" id="spco-attendee_information-noheader" name="noheader" value="" /><br />
<input type="hidden" id="spco-attendee_information-next-step" name="next_step" value="payment_options" /><br />
<input type="hidden" id="spco-reg_url_link" name="e_reg_url_link" value="" /><br />

It also causes output like this:

<p><!--*************** ATTENDEE INFORMATION STEP ***************--></p>

This required some... creative CSS to workaround on the frontend. :)

You can view the example yourself by selecting a ticket on this demo site. It uses 4.4.6.p, but I have confirmed the issue on master locally. Also, Single Page Checkout is not the only place where this happens, just the easiest for me to demo.

"spill over to a Waitlist event" missing

We do have the ability to create a Waitlist event in V4. However, I don't seem to be able to "spillover" the main event to a Waitlist event, as I could in V3.

Custom payment option's generate_new_billing_form() generates incorrect form code on ajax

When using EE_Billing_Info_Form, the form content that is created after the payment option is selected seems to be incorrect and when submitted emits error 'billing_form_invalid'. When I reload the page with the payment method selected, the form code that is generated is different and submits successfully. Below is the code for my generate_new_billing_form() function.

    return new EE_Billing_Info_Form($this->_pm_instance, array(
        'subsections' => array(
            'submitted' => new EE_Hidden_Input(array('default' => true))
        )
    ));

When loaded through ajax the html input looks like:

    <div id="billing-info-form" class="ee-billing-form">
        <input type="hidden" id="billing-info-form-submitted" name="Billing_Info_Form[submitted]" class="" style="" value="1">
    </div>

On page reload, the html input looks like:

    <div id="spco-payment-method-info-aw_gateway-billing-form" class="ee-billing-form">
    <input type="hidden" id="spco-payment-method-info-aw_gateway-billing-form-submitted" name="ee-spco-payment_options-reg-step-form[payment_options][aw_gateway-info][billing_form][submitted]" class="" style="" value="1">
    </div>

Offsite Payment Gateway - passing values / callback

Hi,
I'm using the skeleton code in tests/mocks/addons/new-payment-method to implement an offsite payment method.

All is going OK and after selecting the payment type I'm getting sent to the offsite form and posting through the merchant credentials and payment amount. The next steps are to pass some additional data through and to implement the callback. Couple of questions on these if that's OK?

With regards to extra data then in particular I want to pass through the user's first & last name and email address as entered in the standard form when making a booking (see screenshot).

screen shot 2015-03-12 at 13 51 25

I thought that these might get passed into set_redirection_info() via the $billing_info array so I serlialised the array and sent that through but it looks like it's empty. Does that only contain data if a new form has been defined with generate_new_billing_form()? If so, is there a way that I can get to the user name & email ?

With regard to the callback URL, I understand that this is passed via the $notify_url property, but is there a paricular URL structure or endpoint that needs to be used for this? I'm not sure how EE detects the callback.

Thanks

Messages Settings - Multiple Global Templates

With the fix from #2732 when you turn OFF the messages service in settings you get an error regarding a table column:

messages settings

This also causes duplicate global templates to be created:

duplicates

Each time the messages are activated and deactivated 4 more global templates are created.

'html_label_text' Not Working for EE_Credit_Card_Month_Input

When building the billing form I am using the 'html_label_text' array parameter to set the input label text, however EE_Credit_Card_Month_Input does not seem to process this option, while EE_Credit_Card_Input, EE_Credit_Card_Year_Input and EE_CVV_Input all do. Here is my implementation of generate_new_billing_form():

public function generate_new_billing_form(EE_Transaction $transaction = NULL) {
        $billing_form = new EE_Billing_Attendee_Info_Form($this->_pm_instance, array(
            'name' => 'PJ_Form',
            'subsections' => array(
                'cc_num' => new EE_Credit_Card_Input(array('required' => true, 'html_label_text' => __('Card Number', 'event_espresso'))),
                'cc_month' => new EE_Credit_Card_Month_Input(array('required' => true, 'html_label_text' => __('Expiration Month', 'event_espresso'))),
                'cc_year' => new EE_Credit_Card_Year_Input(array('required' => true, 'html_label_text' => __('Expiration Year', 'event_espresso'))),
                'cvv' => new EE_CVV_Input(array('html_label_text' => __('Card Security Code (CVV/CVC2)', 'event_espresso')))
            )
        ));

        return $billing_form;
}

screen shot 2015-03-18 at 2 39 48 pm

I did make sure to open the page through a different browser to make sure it was not a caching issue. I understand that a workaround would be to use 'expiration_month' as the input name but wanted to point this out.

Full code for the online gateway I'm building can be viewed on our github page: https://github.com/pjsupport/Gateway-EE4

String offset "hex" error when choosing an invoice as payment option

Sorry if this isn't in the right place...
Using 4.7.0.dev.001, when choosing an invoice as the payment option for a ticket bundle, then clicking Finalize Registration, the next screen showed this error. Also, the invoice sent by email doesn't include the ticket information itself.

`Warning: Illegal string offset 'hex' in /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/style.cls.php on line 1418

Warning: Illegal string offset 'hex' in /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/style.cls.php on line 1418

Fatal error: Uncaught exception 'DOMPDF_Exception' with message 'No block-level parent found. Not good.' in /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/inline_positioner.cls.php:38 Stack trace: #0 /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/frame_decorator.cls.php(546): Inline_Positioner->position() #1 /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/inline_frame_reflower.cls.php(37): Frame_Decorator->position() #2 /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/frame_decorator.cls.php(556): Inline_Frame_Reflower->reflow(NULL) #3 /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/page_frame_reflower.cls.php(138): Frame_Decorator->reflow() #4 /home1/ in /home1/ameeker/public_html/ohiogeo/wp-content/plugins/event-espresso-core-development/core/third_party_libs/dompdf/include/inline_positioner.cls.php on line 38`

Direct Refund Implementation

Hi, I've written an onsite gateway module for the PayJunction Trinity REST API. I noticed that the documentation on http://developer.eventespresso.com/docs/ee4-payment-method-development/ that it is possible to enable direct refunds by setting the $_supports_sending_refunds property and implementing do_direct_refund(), however there is no further documentation that I am finding or an example in any of the existing gateways and mocks showing how to properly do so. I've written what I thought will work, but I'm not sure how to tell EE to run a refund in the interface to test it; I'm also not sure if calling $payment->get_txn_id_chq_nmbr() is correct, since I need to pull the stored token back from the original payment info. Any information would be appreciated. I've included what I have written below:

public function do_direct_refund($payment, $refund_info = null) {
        // In order to do a direct refund, we MUST have the transactionId token
        $transactionId = $payment->get_txn_id_chq_nmbr();
        if (empty($transactionId)) {
            $payment->set_status($this->_pay_model->declined_status());
            $payment->set_details('Refund cannot be processed because there was no transactionId found');
            $payment->set_gateway_response('Request not sent');
        } else {
            // We seem to have a transactionId, let's try and run the refund
            $post = array(
                'transactionId' => $transactionId,
                'amountBase' => $this->format_currency($payment->amount()),
                'action' => 'REFUND',
                'billingFirstName' => $refund_info['first_name'],
                'billingLastName' => $refund_info['last_name'],
                'billingAddress' => $refund_info['address'],
                'billingCity' => $refund_info['city'],
                'billingState' => $refund_info['state'],
                'billingZip' => $refund_info['zip'],
                'billingPhone' => $refund_info['phone']
            );
            $response = $this->process_rest_request('POST', $post, $transactionId);
            if (!empty($response)) {
                if (isset($response['transactionId'])) {
                    if (in_array($response['response']['code'], array('00', '85'))) {
                        //Success
                        $payment->set_status($this->_pay_model->approved_status());
                        $payment->set_amount(floatval($response['amountTotal']));
                        $payment->set_gateway_response(sprintf('%s: %s', $response['response']['code'], $response['response']['message']));
                        $payment->set_details(print_r($response));
                        $payment->set_extra_accntng($payment->primary_registration()->reg_code());
                    } else {
                        //Declined
                        $payment->set_status($this->_pay_model->declined_status());
                        $payment->set_details(print_r($response));
                        $payment->set_gateway_response(sprintf('%s: %s', $response['response']['code'], $response['response']['message']));
                    }
                } else { // If we don't have a transaction id, we must have hit at least one error
                    $payment->set_status($this->_pay_model->declined_status());
                    $messages = 'There has been an error: ';
                    foreach ($response['errors'] as $err) {
                        if (isset($err['parameter'])) {
                            $messages .= sprintf('%s: %s - %s; ',$err['type'], $err['parameter'], $err['message']);
                        } else {
                            $messages .= sprintf('%s: %s; ', $err['type'], $err['message']);
                        }
                    }
                    $payment->set_gateway_response($messages);
                    $payment->set_details(print_r($response, true));
                }
            } else { // No response from the Trinity servers
                $payment->set_status($this->_pay_model->declined_status());
                $payment->set_gateway_response(__("Reply from the Trinity gateway servers not received.", "event_espresso"));
                $payment->set_details(print_r($response));
            }
        }
        return $payment;
    }

'Your Organisation' Settings - Error when nothing changes.

Not sure if this is really an issue.

When nothing is changed witihin the 'You Organisation' settings page and save is pressed:

'An error occured. The Your Organization Settings were not updated.'

Is displayed on the top. All other pages I've tested will just display 'Settings updated' or something similar when nothing is changed.

Thinking more for an end user, the error may well seem that there is actually a problem.

Event Espresso - Events Page - Zoom Bug

Not a major issue and not likely a common one.

Create an Event as usual.

Change one of the Notification message templates to custom.

Now Zoom on the page. I'm using Chrome. Held CTRL and scrolled the mouse wheel one click.

The custom template page is displayed again. Press Save to close. Zoom again. Custom template page is displayed once more.

Save the event and this pattern stops.

Can not trash Custom Message Template

I created this template through the Event Editor, attempted to switch back to Global Templates within the event but Custom Template stays active and template does not get trashed. (Payment Template)

Attempted to trash the custom template in Message System Overview. But the template remains after the page reloads. (After clicking move to trash)

Removed the event in-case the active event was preventing the template from being trashed. Still remains.

This screenshot was taken after the above and I had just click 'Move To Trash' then CTRL+F5 for hard refresh.

cant move message to trash

Events Manager - Personnel Manager Error

Hi there,

I recently requested access to your private repo to help in finding bugs in the beta version of EE4.0. So one thing I noticed with the current version that I pulled from github is that the staff/personnel manager doesn't currently work. If activated, the event creation admin page breaks and a fatal error shows up in the "Event Staff / Speaker" box. Fatal error below:

Fatal error: Call to undefined function espresso_personnel_cb() in /.../wp-content/plugins/event-espresso-core/includes/core/admin/events/Events_Admin_Page.core.php on line 2230

screen shot 2013-07-09 at 12 19 11 pm

I'm guessing the file containing the function is not currently included at the moment
File location is at "event-espresso-core/includes/core/admin/admin_helper.php"

Looking in the "Events_Admin_Page.core.php" file, I'm thinking the best place to add this will be in the block where you check if the personnel manager is enabled. I've added a require_once( EE_CORE_ADMIN . 'admin_helper.php' ); to the block. (specific line is 1781 in the build I'm using from the github repo) You guys will know where to include the file better than me though. Below is where I included it.

if ($org_options['use_personnel_manager']) {
    require_once( EE_CORE_ADMIN . 'admin_helper.php' );
    add_meta_box('espresso_event_editor_personnel_box', __('Event Staff / Speakers', 'event_espresso'), array( $this, 'personnel_metabox' ), $this->_current_screen->id, 'side', 'default');
}

Also once I add this line, the "Event Staff / Speakers" box shows up properly, but the proceeding link to add staff leads to a permissions required page. I'm guessing the specific page is not created yet.

This is occurring in a multi site enabled local WordPress install with fresh databases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.