function ikit_event_external_add_meta_box_integration($post)
{
    $external_source_display_name = get_post_meta($post->ID, IKIT_CUSTOM_FIELD_GENERIC_EXTERNAL_SOURCE_DISPLAY_NAME, true);
    $event_meta = ikit_event_external_get_meta($post->ID);
    ?>

    <div class="wp-box">
    <div class="inner">

    <table class="widefat">
    <tr>
        <td>
        External Source
        </td>
        <td>
        <?php 
    echo $external_source_display_name;
    ?>
        </td>
    </tr>
        <tr>
            <td>
            Start Datetime
            </td>
            <td>
            <?php 
    echo ikit_date_without_time($event_meta->start_date) . ' ' . $event_meta->start_time;
    ?>
            </td>
        </tr>
        <tr>
            <td>
            End Datetime
            </td>
            <td>
            <?php 
    echo ikit_date_without_time($event_meta->end_date) . ' ' . $event_meta->end_time;
    ?>
            </td>
        </tr>
    </table>

    <?php 
}
Example #2
0
function ikit_event_add_meta_box_integration($post)
{
    $event_service = get_post_meta($post->ID, IKIT_CUSTOM_FIELD_IKIT_EVENT_SERVICE, true);
    if ($event_service == IKIT_EVENT_SERVICE_EVENTBRITE) {
        $event_meta = ikit_event_eventbrite_get_meta($post->ID);
        $eventbrite_id = get_post_meta($post->ID, IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_ID, true);
        $eventbrite_sync_data = unserialize(get_post_meta($post->ID, IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_SYNC_DATA, true));
        $eventbrite_sync_enabled = get_post_meta($post->ID, IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_SYNC_ENABLED, true);
        // Sync validation
        if ($eventbrite_sync_enabled) {
            if ($eventbrite_sync_data) {
                // Do nothing, correctly synced
            } else {
                ?>
                <div class="error"><p><strong>Automated member tickets are incorrectly configured with Eventbrite, if you would still like to automate tickets, please verify the following before saving:</strong><ul><li>- The event start date is not in the past</li><li>- There are no tickets currently existing on the event</li></ul></p></div>
                <?php 
            }
        }
        ?>
        <div class="wp-box">
        <div class="inner">

        <table class="widefat">
        <tr>
            <td>
            Service
            </td>
            <td>
            Eventbrite
            </td>
        </tr>
        <tr>
            <td>
                Automate member tickets
                <div class="note">Automatically creates tickets for each member type on Eventbrite. Login will be required for all member type tickets. If you would like to manually create your tickets do not check this box.</div>
            </td>
            <td>
                <input type="checkbox" name="<?php 
        echo IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_SYNC_ENABLED;
        ?>
" <?php 
        if ($eventbrite_sync_enabled) {
            echo 'checked';
        }
        ?>
/>
            </td>
        </tr>
        <tr>
            <td>
            Status
            </td>
            <td>
            <?php 
        echo $event_meta->status;
        ?>
            </td>
        </tr>
        <tr>
            <td>
            Start Datetime
            </td>
            <td>
            <?php 
        echo ikit_date_without_time($event_meta->start_date) . ' ' . $event_meta->start_time;
        ?>
            </td>
        </tr>
        <tr>
            <td>
            End Datetime
            </td>
            <td>
            <?php 
        echo ikit_date_without_time($event_meta->end_date) . ' ' . $event_meta->end_time;
        ?>
            </td>
        </tr>
        </table>

        </div>
        </div>

        <?php 
    } else {
        if ($event_service == IKIT_EVENT_SERVICE_ETOUCHES) {
            $event_meta = ikit_event_get_meta($post->ID);
            ?>

        <div class="wp-box">
        <div class="inner">
        <table class="widefat">
        <tr>
            <td>
            Service
            </td>
            <td>
            etouches
            </td>
        </tr>
        <tr>
            <td>
            Status
            </td>
            <td>
            <?php 
            echo $event_meta->status;
            ?>
            </td>
        </tr>
        <tr>
            <td>
            Start Datetime
            </td>
            <td>
            <?php 
            echo ikit_date_without_time($event_meta->start_date) . ' ' . $event_meta->start_time;
            ?>
            </td>
        </tr>
        <tr>
            <td>
            End Datetime
            </td>
            <td>
            <?php 
            echo ikit_date_without_time($event_meta->end_date) . ' ' . $event_meta->end_time;
            ?>
            </td>
        </tr>
        </table>
        </div>
        </div>

        <?php 
        }
    }
}
function ikit_event_eventbrite_remote_fetch_save($events)
{
    global $wpdb;
    $event_eventbrite_table_name = $wpdb->prefix . IKIT_EVENT_EVENTBRITE_TABLE_NAME;
    foreach ($events as $event) {
        $event = $event->event;
        $event_id = (string) $event->id;
        $event_start_date = ikit_date_without_time($event->start_date);
        $event_end_date = ikit_date_without_time($event->end_date);
        $event_start_time = ikit_time_without_date($event->start_date);
        $event_end_time = ikit_time_without_date($event->end_date);
        $event_data = array('id' => $event_id, 'url' => $event->url, 'start_date' => $event_start_date, 'end_date' => $event_end_date, 'description' => $event->description, 'status' => $event->status, 'title' => $event->title, 'venue_name' => $event->venue->name, 'venue_address' => $event->venue->address, 'venue_address2' => $event->venue->address2, 'venue_city' => $event->venue->city, 'venue_region' => $event->venue->region, 'venue_postal_code' => $event->venue->postal_code, 'venue_country' => $event->venue->country, 'venue_country_code' => $event->venue->country_code, 'venue_longitude' => $event->venue->longitude, 'venue_latitude' => $event->venue->latitude, 'logo' => $event->logo, 'service' => IKIT_EVENT_SERVICE_EVENTBRITE, 'start_time' => $event_start_time, 'end_time' => $event_end_time);
        $rows_affected = $wpdb->query("select id from {$event_eventbrite_table_name} where id = {$event_id}");
        if ($rows_affected == 0) {
            $rows_affected = $wpdb->insert($event_eventbrite_table_name, $event_data);
        } else {
            $rows_affected = $wpdb->update($event_eventbrite_table_name, $event_data, array('id' => $event_id));
        }
        $post_status = 'publish';
        if ($event->status != 'Live' && $event->status != 'Completed' && $event->status != 'Started') {
            $post_status = 'draft';
        }
        // Each event has an associated WordPress post to aid with custom fields
        // searching and an auto-generated admin interface for the event
        $yesterday_gmt = date("Y-m-d H:i:s", time() - 60 * 60 * 24);
        $yesterday_local = date("Y-m-d H:i:s", time() - 60 * 60 * 24 + get_option('gmt_offset') * 3600);
        $associated_post = array('post_title' => (string) $event->title, 'post_type' => IKIT_POST_TYPE_IKIT_EVENT, 'post_status' => $post_status, 'post_content' => (string) $event->description, 'post_date_gmt' => $yesterday_gmt, 'post_date' => $yesterday_local, 'edit_date' => true);
        $event_end_date = ikit_date_without_time($event->end_date);
        $event_start_date = ikit_date_without_time($event->start_date);
        $existing_associated_post = ikit_get_post_by_meta(IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_ID, $event_id, IKIT_POST_TYPE_IKIT_EVENT);
        if ($existing_associated_post == null) {
            $new_associated_post_id = wp_insert_post($associated_post);
            if ($new_associated_post_id > 0) {
                // Add the event id to link this post with the event
                add_post_meta($new_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_EVENTBRITE_ID, $event_id, true);
                add_post_meta($new_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_SERVICE, IKIT_EVENT_SERVICE_EVENTBRITE, true);
                add_post_meta($new_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_STATUS, (string) $event->status, true);
                add_post_meta($new_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_END_DATE, $event_end_date, true);
                add_post_meta($new_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_START_DATE, $event_start_date, true);
            }
        } else {
            $associated_post['ID'] = $existing_associated_post->ID;
            $updated_associated_post_id = wp_update_post($associated_post);
            if ($updated_associated_post_id > 0) {
                ikit_add_or_update_post_meta($updated_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_SERVICE, IKIT_EVENT_SERVICE_EVENTBRITE, true);
                ikit_add_or_update_post_meta($updated_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_STATUS, (string) $event->status, true);
                ikit_add_or_update_post_meta($updated_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_END_DATE, $event_end_date, true);
                ikit_add_or_update_post_meta($updated_associated_post_id, IKIT_CUSTOM_FIELD_IKIT_EVENT_START_DATE, $event_start_date, true);
            }
        }
    }
}
Example #4
0
/**
 * Currently takes no parameters, just returns list of upcoming events
 */
function ikit_api_v1_ikit_event_search()
{
    global $g_options;
    $imus_chapter = $g_options[IKIT_PLUGIN_OPTION_FILTER_IKIT_IMUS_CHAPTER];
    $results = array();
    $args = array();
    $args['posts_per_page'] = 20;
    $args['post_type'] = IKIT_POST_TYPE_IKIT_EVENT;
    $args['order'] = 'ASC';
    $args['orderby'] = 'meta_value_num';
    $args['meta_key'] = IKIT_CUSTOM_FIELD_GENERIC_ORDERING_DISPLAY_PRIORITY;
    $args['meta_query'] = array(array('key' => IKIT_CUSTOM_FIELD_IKIT_EVENT_END_DATE, 'value' => date_i18n("Y-m-d"), 'compare' => '>=', 'type' => 'DATE'), array('key' => IKIT_CUSTOM_FIELD_IKIT_EVENT_STATUS, 'value' => 'Closed', 'compare' => '!=', 'type' => 'CHAR'));
    query_posts($args);
    ?>

    <result>
    <site>
        <code><?php 
    echo $imus_chapter;
    ?>
</code>
        <title><![CDATA[<?php 
    echo ikit_get_blog_title();
    ?>
]]></title>
        <linkUrl><![CDATA[<?php 
    echo get_bloginfo('url');
    ?>
]]></linkUrl>
    </site>
    <events>

    <?php 
    while (have_posts()) {
        the_post();
        global $id;
        $ikit_event_meta = ikit_event_get_meta($id);
        if ($ikit_event_meta->folder_id != IKIT_EVENT_FOLDER_ID_NATIONAL && $ikit_event_meta->folder_id != IKIT_EVENT_FOLDER_ID_NATIONAL_REGISTRATION_TYPE_DISABLED) {
            // Note may not return the full count, because exludes national events
            $event_image_url = ikit_event_get_image_url($id, $ikit_event_meta, null);
            $event_title = null;
            $event_location = null;
            if ($ikit_event_meta->service == IKIT_EVENT_SERVICE_EVENTBRITE) {
                $event_title = $ikit_event_meta->title;
                $event_location = $ikit_event_meta->venue_city;
            } else {
                if ($ikit_event_meta->service == IKIT_EVENT_SERVICE_ETOUCHES) {
                    $event_title = $ikit_event_meta->name;
                    $event_location = $ikit_event_meta->location_city;
                }
            }
            ?>
            <event>
                <id><?php 
            echo $id;
            ?>
</id>
                <title><![CDATA[<?php 
            echo $event_title;
            ?>
]]></title>
                <startDate><?php 
            echo ikit_date_without_time($ikit_event_meta->start_date);
            ?>
</startDate>
                <endDate><?php 
            echo ikit_date_without_time($ikit_event_meta->end_date);
            ?>
</endDate>
                <startTime><?php 
            echo $ikit_event_meta->start_time;
            ?>
</startTime>
                <endTime><?php 
            echo $ikit_event_meta->end_time;
            ?>
</endTime>
                <imageUrl><![CDATA[<?php 
            echo $event_image_url;
            ?>
]]></imageUrl>
                <description><![CDATA[<?php 
            echo $ikit_event_meta->description;
            ?>
]]></description>
                <linkUrl><![CDATA[<?php 
            the_permalink();
            ?>
]]></linkUrl>
                <location><![CDATA[<?php 
            echo $event_location;
            ?>
]]></location>
            </event>

            <?php 
        }
    }
    ?>

    </events>
    </result>

    <?php 
    die;
}