Tagged: function

Event Espresso 4 – Helpful Functions

event-espresso-logo-600x213-black1-600x198

I’ve recently been working on a project using Event Espresso 4 and I’ve had to customize it quite extensively. I wrote a few functions that I think might be handy for others so I thought I would share them:

Get Event ID From Registration Code

I wrote this one to help me get the event information when a user clicks on a ‘cancel registration’ link. The reg code is more secure way to pass as a GET variable in a link than the user/event/registration id.

The Function

function get_eventid_of_reg_id($regid){

    global $wpdb;

    $query = "SELECT EVT_ID from wp_esp_registration where REG_code = '".$regid."'";
        
    $result = $wpdb->get_row($query);

    $result = $result->EVT_ID;

    return $result;

}

Usage Example

$regid = "axssa-12343";

$eventid = get_eventid_of_reg_id($regid);

$event_info_Object =  get_post($eventid);

// Returns a WP_Post object https://codex.WordPress.org/Class_Reference/WP_Post

Get Event Date

This one is handy if you have the event id and you are just looking for the date of the event.

The Function

function get_event_date($eventid, $format){

    global $wpdb;

    $query = "SELECT DTT_EVT_start from wp_esp_datetime where EVT_ID = '".$eventid."'";
        
    $result = $wpdb->get_row($query);

    $result = $result->DTT_EVT_start;

    $phpdate        = strtotime( $result );
    $mysqldate      = date( $format, $phpdate );
                                                    
    return $mysqldate;

}

Usage Example

$event_id = 34;

$event_date = get_event_date($event_id, 'Y-m-d');

echo $event_date;

Get the Status of the Registration From Registration Code

This one can be used to see the status of a particular registration. I wrote it to provide confirmation that a registration had been cancelled in a custom built ‘cancellation journey’.

The Function

function get_regid_status_from_regcode($regid){

    global $wpdb;

    $query = "SELECT STS_ID from wp_esp_registration where REG_code = '".$regid."'";
        
    $result = $wpdb->get_row($query);

    $result = $result->STS_ID;
                                                    
    return $result;  

}

This function returns a status code:

“RAP” (registration status of approved. This is the default behavior.)
“RCN” (registration status of cancelled.)
“RDC” (registration status of declined.)
“RIC” (registration status of incomplete.)
“RNA” (registration status of not approved.)
“RPP” (registration status of pending payment.)

Usage Example

$registration_code = "j9ojjsk-ookkd1";

$registration_status = get_regid_status_from_regcode($registration_code);

if($registration_status == "RCN"){
   echo "This registration is cancelled";
}

Get the Status of the Event From Registration ID

Same as above just using the Registration ID.

The Function

function get_regid_status_from_id($regid){

    global $wpdb;

    $query = "SELECT STS_ID from wp_esp_registration where REG_ID = '".$regid."'";
        
    $result = $wpdb->get_row($query);

    $result = $result->STS_ID;
                                                    
    return $result;  

}

This function returns a status code:

“RAP” (registration status of approved. This is the default behavior.)
“RCN” (registration status of cancelled.)
“RDC” (registration status of declined.)
“RIC” (registration status of incomplete.)
“RNA” (registration status of not approved.)
“RPP” (registration status of pending payment.)

Usage Example

$registration_id = 72;

$registration_status = get_regid_status_from_regcode($registration_id);

if($registration_status == "RCN"){
   echo "This registration is cancelled";
}

Get Registrant Details From Registration ID

This function gives you the all the registration details of a Registrant if you have the registration ID.

The Function

function get_registrant_from_reg_id($regid){

    global $wpdb;

    $query = "SELECT wp_esp_registration.ATT_ID,  ATT_fname as 'first_name', ATT_lname as 'last_name', ATT_email as 'email' from wp_esp_registration 
              join wp_esp_attendee_meta on wp_esp_attendee_meta.ATT_ID = wp_esp_registration.ATT_ID
              where REG_ID = '".$regid."'";
        
    $result = $wpdb->get_row($query);

    return $result;

}

This function returns an object with ‘first_name’, ‘last_name’ and ’email’ as the parameters.

Usage Example

$registration_id = 42;

$registration_detail = get_registrant_from_reg_id($registration_id);

echo "The registrants first name is ". $registration_detail->first_name. "<br>";
echo "The registrants last name is ". $registration_detail->last_name. "<br>";
echo "The registrants email adddress is ". $registration_detail->email. "<br>";

 

More

Multisite Post Duplicator

Last post I mentioned a wee function I has written to help me with copying posts and pages from one multisite to another. Well I have packaged it into a plugin and submitted it to WordPress. After a few days I got notice that they approved it!

banner-1544x500

Check it out on GitHub also:

FireShot Capture - magicstickuk_multisi_ - https___github.com_magicstickuk_multisite-post-duplicator

It doesn’t finish here though. I have several ideas for future features. Stay tuned!

More

Multisite: Copy a Page From One Site to Another

photo-1421977870504-378093748ae6

I’ve been working on a multisite recently and my client requested something off the cuff that made me gulp. They said “I take it we will be able to copy a page from one site to the other to save us having to replicate it manually?”

Coping a page on the same site is pretty straightforward and there are a multitude of plugins out there that make it a pretty easy process. However. Doing this across a mulitsite is different. Not a lot of plugins out there.

wpmaz says*For this to work full with advanced custom fields you need to ensure your custom fields setup on both sites are the same!
I thought I would share a function I wrote today to achieve this. This is pretty basic at the moment but gives the core functionality and works with Advanced Custom Fields too*!

function duplicate_over_multisite($post_id_to_copy, $new_blog_id) {

    $post = get_post($post_id_to_copy);

    $title =  get_the_title($post);
    
    $post = array(

    	    // The new page title
            'post_title' => "Copy of" . $title,
            // Set the status of the new page
            'post_status' => 'draft',
            // The post type of this page
            'post_type' => 'page',
            // The user ID you want to assign to this page creation
            'post_author' => 1

    );
    
    $data = get_post_custom($post);

    $meta_values = get_post_meta($post_id_to_copy);

    switch_to_blog($new_blog_id);

    	$post_id = wp_insert_post( $post );
 
        foreach ( $data as $key => $values) {
            foreach ($values as $value) {
                add_post_meta( $post_id, $key, $value );
            }
        }

  	foreach ($meta_values as $key => $values) {
            foreach ($values as $value) {
                add_post_meta( $post_id, $key, $value );
            }
        }

     restore_current_blog();
     
     return $post_id;

}

I’m pretty happy with this, but think I might make a wee plugin for it!

More