Tribe__Events__Main::publishAssociatedTypes( int $post_id, WP_Post $post )
Publishes associated venue/organizer when an event is published
Contents
Parameters
- $post_id
-
(int) (Required) The post ID.
- $post
-
(WP_Post) (Required) The post object.
Source
File: src/Tribe/Main.php
public function publishAssociatedTypes( $post_id, $post ) {
// don't need to save the venue or organizer meta when we are just publishing
remove_action( 'save_post_' . Tribe__Events__Venue::POSTTYPE, array( $this, 'save_venue_data' ), 16 );
remove_action( 'save_post_' . Tribe__Events__Organizer::POSTTYPE, array( $this, 'save_organizer_data' ), 16 );
// Remove any "preview" venues and organizers (duplicates) attached to this event.
$this->remove_preview_venues( $post_id, true );
$this->remove_preview_organizers( $post_id, true );
// save venue and organizer info on first pass
if ( isset( $post->post_status ) && $post->post_status == 'publish' ) {
//get venue and organizer and publish them
$pm = get_post_custom( $post->ID );
do_action( 'log', 'publishing an event with a venue', 'tribe-events', $post );
// save venue on first setup
if ( ! empty( $pm['_EventVenueID'] ) ) {
$venue_id = is_array( $pm['_EventVenueID'] ) ? current( $pm['_EventVenueID'] ) : $pm['_EventVenueID'];
if ( $venue_id ) {
do_action( 'log', 'event has a venue', 'tribe-events', $venue_id );
$venue_post = get_post( $venue_id );
if ( ! empty( $venue_post ) && $venue_post->post_status != 'publish' ) {
do_action( 'log', 'venue post found', 'tribe-events', $venue_post );
$venue_post->post_status = 'publish';
wp_update_post( $venue_post );
$did_save = true;
}
}
}
// save organizer on first setup
if ( ! empty( $pm['_EventOrganizerID'] ) ) {
$org_id = is_array( $pm['_EventOrganizerID'] ) ? current( $pm['_EventOrganizerID'] ) : $pm['_EventOrganizerID'];
if ( $org_id ) {
$org_post = get_post( $org_id );
if ( ! empty( $org_post ) && $org_post->post_status != 'publish' ) {
$org_post->post_status = 'publish';
wp_update_post( $org_post );
$did_save = true;
}
}
}
}
// put the actions back
add_action( 'save_post_' . Tribe__Events__Venue::POSTTYPE, array( $this, 'save_venue_data' ), 16, 2 );
add_action( 'save_post_' . Tribe__Events__Organizer::POSTTYPE, array( $this, 'save_organizer_data' ), 16, 2 );
}