Support

Home Forums Event Espresso Premium Reporting outside WordPress

Reporting outside WordPress

Posted: October 6, 2020 at 8:14 am


motio

October 6, 2020 at 8:14 am

Hi,

because WordPress (or the available plugins) has problems with exporting javascript charts in pdfs, we started using KoolReport as our reporting tool. Now we would like to implement data from event espresso.

My hope was to reuse of the code that I wrote (e.g. in Table View Template Add-on). Is there a way to use the objects and methods of event espresso outside WordPress?


Tony

  • Support Staff

October 6, 2020 at 8:57 am

Hi there,

Is there a way to use the objects and methods of event espresso outside WordPress?

Unless I’m misunderstanding your question, the short answer is no.

Event Espresso is a WordPress plugin, it pulls all of the values from the WP Database and uses a lot of internal WP functions so you can’t load Event Espressos objects/models/etc outside of WordPress.

Depending on the data you are looking to pull, you may be able to use the REST API:

https://github.com/eventespresso/event-espresso-core/tree/master/docs/C–REST-API


motio

October 6, 2020 at 9:28 am

Hi Tony,

do you have examples of sql queries (e.g. to have a list of all events) or give me a hint, where to find the queries that the methods are using?

The connections within the event espresso tables in the database are pretty straight forward, but I don’t understand the connections between the EE and the WP tables fully.


Tony

  • Support Staff

October 7, 2020 at 3:51 am

do you have examples of sql queries (e.g. to have a list of all events) or give me a hint, where to find the queries that the methods are using?

They are created dynamically through our model system which handles all of the joins for you.

You can find details on the model system here:

https://github.com/eventespresso/event-espresso-core/tree/master/docs/G–Model-System

You’ll likely find this section helpful:

https://github.com/eventespresso/event-espresso-core/blob/master/docs/G–Model-System/model-querying.md#inspecting-generated-queries

Which will output the generated SQL queries for you to view when using the modest o pull in data.

EE events in themselves are a custom post type, but pretty much everything other than what you would expect with a standard post is stored in custom tables and we join wp_posts using the post ID. The relationships between the EE tables are more complex than the one to wp_posts so if you have those down the above should be straight forward.


motio

October 7, 2020 at 9:23 am

Hey Tony,thanks a lot.
Could you tell me where to join the Event to the Message Template?
Maybe I am blind or didn’t find the right spot in the documentation.


Tony

  • Support Staff

October 7, 2020 at 2:54 pm

Using the models you can do something like:

$templates_for_event = EEM_Message_Template_Group::instance()->get_all_custom_templates_by_event(
    $event_id,
    array(
        'MTP_messenger' => 'email',
        'MTP_is_active' => true
    )
);

Obviously set the $event_id variable for the event in question.

If you output that question you’ll see it uses esp_event_message_template and esp_message_template_group

You must be logged in to reply to this support post. Sign In or Register for an Account

Support forum for Event Espresso 3 and Event Espresso 4.
Documentation for EE3 and EE4
Documentation for Event Espresso 3 Documentation for Event Espresso 4

Status: publish

Updated by  Tony 2 weeks, 5 days ago ago

Topic Tags

Notifications

This topic is: not resolved
Do NOT follow this link or you will be banned from the site!
[gravityform id=80 title=false description=false ajax=false]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_80' ><form method='post' enctype='multipart/form-data' id='gform_80' action='/topic/reporting-outside-wordpress/'> <div class='gform_body'><ul id='gform_fields_80' class='gform_fields top_label form_sublabel_below description_below'><li id='field_80_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_1' >First name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_80_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_80_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_2' >Email address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_80_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id='field_80_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' >GDPR Agreement<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_80_3'><li class='gchoice_80_3_1'> <input name='input_3.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_80_3_1' /> <label for='choice_80_3_1' id='label_80_3_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id='field_80_4' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_4' >Email</label><div class='ginput_container'><input name='input_4' id='input_80_4' type='text' value='' autocomplete='off'/></div><div class='gfield_description' id='gfield_description_80_4'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_80' class='gform_button button' value='Download Now' onclick='if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} jQuery("#gform_80").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_80' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='80' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_80' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_80' id='gform_target_page_number_80' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_80' id='gform_source_page_number_80' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 80) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [80, 1]) } ); </script>
[i]
[i]