WordPress.org

Ready to get started?Download WordPress

Forums

[Plugin: Events Manager] conditional placeholder {is_attending} (2 posts)

  1. Mariust
    Member
    Posted 2 years ago #

    Hi, I would like to add some Stuff to single-event pages, when users have booked tickets for them.

    After reading through alot of posts on this forum, i thought i had it figured out, but i still dont get this code to work.

    add_action('em_event_output_condition', 'my_em_event_output_condition001', 1, 4);
    function my_em_event_output_condition001($replacement, $condition, $match, $EM_Event){
        global $wpdb, $current_user, $EM_Person;
        get_currentuserinfo();
        if( is_user_logged_in() &&  is_object($EM_Event) && preg_match('/^is_attending$/',$condition, $matches) ){
            $EM_Person = new EM_Person( get_current_user_id() );
            if( in_array($EM_Event->event_id,$EM_Person->get_bookings() ) ){
                $replacement = preg_replace("/\{\/?$condition\}/", '', $match);
            }else{ $replacement = ''; }
        } return $replacement; }

    I used
    http://wordpress.org/support/topic/plugin-events-manager-conditional-placeholder-question
    and
    http://wordpress.org/support/topic/plugin-events-manager-conditional-placeholder
    aswell as parts of my-bookings.php to get to this point.

    Any thoughts would be very much appreciated. Thanks so much.

  2. Mariust
    Member
    Posted 2 years ago #

    After posting i realised a critical error i made up there.
    Now after some hours i arrived at this, wich should work if i wasnt still missing something:

    add_action('em_event_output_condition', 'my_em_event_output_condition001', 1, 4);
    function my_em_event_output_condition001($replacement, $condition, $match, $EM_Event){
        if( is_object($EM_Event) && preg_match('/^is_attending$/',$condition, $matches) ){
            $EM_Booking = $EM_Event->get_bookings()->has_booking();
            if( is_object($EM_Booking) ){
                $replacement = preg_replace("/\{\/?$condition\}/", '', $match);
            }else{ $replacement = ''; }
        }
        return $replacement;
    }

    Inserting a few alerts into the code tells me that
    if( is_object($EM_Event) && preg_match('/^is_attending$/',$condition, $matches) )
    never returns true. Do i need to include anything important in my functions.php?

Topic Closed

This topic has been closed to new replies.

About this Topic