File "Organizer.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/the-events-calendar/src/Events/Admin/Onboarding/Steps/Organizer.php
File size: 1.98 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Handles the organizer step of the onboarding wizard.
*
* @since 6.8.4
*
* @package TEC\Events\Admin\Onboarding\Steps
*/
namespace TEC\Events\Admin\Onboarding\Steps;
use TEC\Common\Admin\Onboarding\Steps\Abstract_Step;
use Tribe__Events__API;
use WP_REST_Response;
use WP_REST_Request;
/**
* Class Organizer
*
* @since 6.8.4
*
* @package TEC\Events\Admin\Onboarding\Steps
*/
class Organizer extends Abstract_Step {
/**
* The tab number for this step.
* Note: this is set to the same as the Tickets tab as we don't want to process an organizer until the end.
*
* @since 6.8.4
*
* @var int
*/
public const TAB_NUMBER = 5;
/**
* Process the organizer data.
*
* @since 6.8.4
*
* @param WP_REST_Response $response The response object.
* @param WP_REST_Request $request The request object.
*
* @return WP_REST_Response
*/
public function process( $response, $request ): WP_REST_Response {
$params = $request->get_params();
// No data to process, bail out.
if ( empty( $params['organizer'] ) ) {
return $this->add_message( $response, __( 'No organizer to save. Step skipped', 'the-events-calendar' ) );
}
$organizer = $params['organizer'];
// If we already have an organizer, we're not editing it here.
if ( ! empty( $organizer['organizerId'] ) ) {
return $this->add_message( $response, __( 'Existing organizer. Step skipped.', 'the-events-calendar' ) );
}
$new_organizer['Organizer'] = $organizer['name'];
$new_organizer['Phone'] = $organizer['phone'] ?? '';
$new_organizer['Website'] = $organizer['website'] ?? '';
$new_organizer['Email'] = $organizer['email'] ?? '';
$post_id = Tribe__Events__API::createOrganizer( $new_organizer );
if ( ! $post_id ) {
return $this->add_fail_message( $response, __( 'Failed to create organizer.', 'the-events-calendar' ) );
} else {
$response->data['organizer_id'] = $post_id;
}
return $this->add_message( $response, __( 'Organizer created.', 'the-events-calendar' ) );
}
}