PATH:
home
/
ediuae
/
petalwellnessspa.com
/
wp-content
/
plugins
/
simply-schedule-appointments
/
includes
<?php /** * Simply Schedule Appointments CSV Exporter. * * @since 4.8.9 * @package Simply_Schedule_Appointments */ /** * Simply Schedule Appointments CSV Exporter. * * @since 4.8.9 */ class SSA_CSV_Exporter { /** * CSV file base path. * * @var string */ protected $file_path = null; /** * CSV file base url. * * @var string */ protected $file_url = null; /** * Get .csv for appointments. * * @param array $appointments Array with SSA_Appointment_Object objects. * @param string $filename .csv filename. * * @return string .csv path */ public function get_csv( $appointments = array(), $filename = '' ) { if ( empty( $appointments ) ) { return new WP_Error( 'ssa_export_csv_no_appointments', __( 'No appointments to export to .csv file.', 'simply-schedule-appointments' ) ); } if ( '' === $filename ) { $filename = 'deleted-appointments-' . time(); } $this->file_path = $this->get_file_path( $filename ); $this->file_url = $this->get_file_url( $filename ); // Create the .csv. $this->create( $appointments ); if ( ! file_exists( $this->file_path ) ) { return new WP_Error( 'ssa_export_csv_file_not_found', __( 'Error creating .csv file.', 'simply-schedule-appointments' ) ); } return array( 'file_path' => $this->file_path, 'file_url' => $this->file_url, ); } /** * Get file path. * * @param string $filename Filename. * * @return string */ protected function get_file_path( $filename ) { $path = SSA_Filesystem::get_uploads_dir_path(); if ( empty( $path ) ) { return false; } $path .= '/csv'; if ( ! wp_mkdir_p( $path ) ) { return false; } if ( ! file_exists( $path . '/index.html' ) ) { // @codingStandardsIgnoreStart $handle = @fopen( $path . '/index.html', 'w' ); @fwrite( $handle, '' ); @fclose( $handle ); // @codingStandardsIgnoreEnd } return $path . '/' . sanitize_title( $filename ) . '.csv'; } /** * Get file url * * @param string $filename Filename. * * @return string */ protected function get_file_url( $filename ) { $url = SSA_Filesystem::get_uploads_dir_url(); if ( empty( $url ) ) { return false; } $url .= '/csv'; return $url . '/' . sanitize_title( $filename ) . '.csv'; } /** * Create the .ics file. * * @param array $appointments The appointments array. * * @return void */ protected function create( $appointments ) { // @codingStandardsIgnoreStart $handle = @fopen( $this->file_path, 'w' ); fputcsv( $handle, array_keys( $appointments[0] ) ); foreach ( $appointments as $appointment ) { fputcsv( $handle, $appointment ); } @fclose( $handle ); // @codingStandardsIgnoreEnd } }
[-] class-settings.php
[edit]
[-] class-hooks.php
[edit]
[-] class-availability-query.php
[edit]
[-] class-appointment-model.php
[edit]
[-] class-beaver-builder.php
[edit]
[-] class-web-meetings.php
[edit]
[-] class-availability-model.php
[edit]
[-] class-recipient-admin.php
[edit]
[-] class-recipient-customer.php
[edit]
[-] class-constants.php
[edit]
[-] class-async-action-model.php
[edit]
[-] class-support.php
[edit]
[-] class-google-calendar-client.php
[edit]
[+]
..
[-] class-capabilities.php
[edit]
[-] class-encryption.php
[edit]
[-] class-availability-cache-invalidation.php
[edit]
[-] class-calendar-events-settings.php
[edit]
[-] class-settings-global.php
[edit]
[-] class-translation.php
[edit]
[-] class-cli.php
[edit]
[-] class-missing.php
[edit]
[-] class-action-scheduler.php
[edit]
[-] class-templates-api.php
[edit]
[-] class-blackout-dates.php
[edit]
[-] class-calendar-events-object.php
[edit]
[-] class-divi.php
[edit]
[-] class-templates.php
[edit]
[-] class-wp-admin.php
[edit]
[-] class-appointment-factory.php
[edit]
[-] class-scheduling-max-per-day.php
[edit]
[-] class-notifications-api.php
[edit]
[-] class-shortcodes.php
[edit]
[-] class-validation.php
[edit]
[-] class-resource-group-object-factory.php
[edit]
[-] class-payment-object.php
[edit]
[-] class-locale.php
[edit]
[-] class-ics-exporter.php
[edit]
[-] class-filesystem.php
[edit]
[-] class-recipient-shared.php
[edit]
[-] class-availability-schedule.php
[edit]
[-] class-block-upcoming-appointments.php
[edit]
[-] class-elementor.php
[edit]
[-] class-appointment-meta-model.php
[edit]
[-] class-revision-meta-model.php
[edit]
[+]
divi
[-] class-notifications.php
[edit]
[-] class-upgrade.php
[edit]
[-] class-utils.php
[edit]
[-] class-availability-functions.php
[edit]
[-] class-external-calendar-api.php
[edit]
[-] class-csv-exporter.php
[edit]
[-] class-external-google-calendar-api.php
[edit]
[-] class-twig-extension.php
[edit]
[-] class-bootstrap.php
[edit]
[-] class-notices.php
[edit]
[-] class-availability-schedule-factory.php
[edit]
[-] class-blackout-dates-settings.php
[edit]
[-] class-support-status.php
[edit]
[-] class-block-booking.php
[edit]
[-] class-advanced-scheduling-availability.php
[edit]
[-] class-exception.php
[edit]
[-] class-styles-settings.php
[edit]
[-] class-forms.php
[edit]
[-] class-recipient-staff.php
[edit]
[+]
beaver-builder
[-] class-users.php
[edit]
[-] class-sequence-factory.php
[edit]
[+]
third-party
[-] class-locales.php
[edit]
[-] class-db-model.php
[edit]
[-] class-db.php
[edit]
[-] class-availability-default.php
[edit]
[-] class-staff-settings.php
[edit]
[-] class-notification-model.php
[edit]
[-] class-settings-installed.php
[edit]
[-] class-appointment-object.php
[edit]
[-] class-notices-api.php
[edit]
[-] class-translation-settings.php
[edit]
[-] class-support-status-api.php
[edit]
[-] class-notices-data.php
[edit]
[-] class-appointment-type-object.php
[edit]
[-] class-appointment-type-object-factory.php
[edit]
[-] class-availability-block-factory.php
[edit]
[-] class-recipient.php
[edit]
[-] class-revision-model.php
[edit]
[-] class-customers.php
[edit]
[-] class-settings-api.php
[edit]
[-] class-cache.php
[edit]
[-] class-availability-detective-case.php
[edit]
[-] class-styles.php
[edit]
[-] class-capacity-settings.php
[edit]
[-] class-gcal-exporter.php
[edit]
[-] class-advanced-scheduling-settings.php
[edit]
[-] class-appointment-type-model.php
[edit]
[-] class-notifications-settings.php
[edit]
[-] class-period.php
[edit]
[-] class-external-api.php
[edit]
[-] class-error-notices.php
[edit]
[-] class-availability-cache.php
[edit]
[-] class-developer-settings.php
[edit]
[-] class-dashboard-upcoming-appointments-widget.php
[edit]
[-] class-availability-external-model.php
[edit]
[-] class-availability-block.php
[edit]
[-] class-customer-information.php
[edit]
[+]
elementor
[-] class-appointment-type-label-model.php
[edit]
[-] class-embed-booking-app-api.php
[edit]
[+]
lib
[-] class-sequence.php
[edit]
[-] class-debug.php
[edit]
[-] class-appointment-types-db.php
[edit]