✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ webm004.cluster127.gra.hosting.ovh.net ​🇻​♯➤ 6.18.42-ovh-vps-grsec-zfs+ #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 54.36.91.62 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.108
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ _dyuweyrj4,_dyuweyrj4r,dl

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/docteuh/www/plugins/fusion-builder/inc//class-fusion-form-db-privacy.php
<?php
/**
 * Privacy handler.
 *
 * @package fusion-builder
 * @since 3.1
 */

/**
 * Database actions for privacy.
 *
 * @since 3.1
 */
class Fusion_Form_DB_Privacy {

	/**
	 * Should we log the IP?
	 *
	 * @access protected
	 * @since 3.1
	 * @var bool
	 */
	protected $log_ip = false;

	/**
	 * Should we log the User-Agent?
	 *
	 * @access protected
	 * @since 3.1
	 * @var bool
	 */
	protected $log_ua = false;

	/**
	 * Log expiration.
	 *
	 * This is a numeric value, representing time in seconds.
	 * Set to 0 for no expiration.
	 *
	 * @access protected
	 * @since 3.1
	 * @var int
	 */
	protected $expiration = YEAR_IN_SECONDS;

	/**
	 * Expired data scrub method.
	 *
	 * This is a string and can be either "delete", "anonymize" or "ignore".
	 * When set to "anonymize", form submissions older than $expiration will have their UA and IP columns scrubbed.
	 * When set to "delete", form submissions older than $expiration will be deleted.
	 *
	 * @access protected
	 * @since 3.1
	 * @var string
	 */
	protected $on_expiration = 'anonymize';

	/**
	 * Cleanup interval.
	 *
	 * The interval (in seconds) that will trigger a data purge.
	 *
	 * @since 3.1
	 */
	const CLEANUP_INTERVAL = DAY_IN_SECONDS;

	/**
	 * The option used for cleanup timestamp.
	 *
	 * @since 3.1
	 */
	const CLEANUP_DATETIME_OPTION = 'fusion_form_cleanup_datetime';

	/**
	 * Constructor.
	 *
	 * @access public
	 * @since 3.1
	 */
	public function __construct() {

		// Filter the database query.
		add_filter( 'fusion_form_submissions_insert_query_args', [ $this, 'filter_submissions_query_args' ] );

		// Run cleanup on shutdown. We do this on shutdown so it doesn't interfere with the page-load.
		add_action( 'shutdown', [ $this, 'maybe_cleanup' ] );

		// Register privacy data-exporter.
		add_filter( 'wp_privacy_personal_data_exporters', [ $this, 'register_exporter' ] );

		// Register privacy data-eraser.
		add_filter( 'wp_privacy_personal_data_erasers', [ $this, 'register_eraser' ] );
	}

	/**
	 * Filters form submission query arguments.
	 *
	 * @access public
	 * @since 3.1
	 * @param array $args The query arguments.
	 * @return array
	 */
	public function filter_submissions_query_args( $args ) {

		// Remove IP data if we don't want to log it.
		if ( ! $this->should_log_ip( $args['form_id'] ) ) {
			$args['ip'] = '';
		}

		// Remove UA data if we don't want to log it.
		if ( ! $this->should_log_ua( $args['form_id'] ) ) {
			$args['user_agent'] = '';
		}

		// Modify the expiration date.
		$args['privacy_scrub_date'] = $this->get_submission_privacy_expire_date( $args['form_id'] );

		// Modify the scrub method.
		$args['on_privacy_scrub'] = $this->get_submission_scrub_action( $args['form_id'] );

		// Return modified arguments.
		return $args;
	}

	/**
	 * Check if we want to log IP for a form submission.
	 *
	 * @access protected
	 * @since 3.1
	 * @return bool
	 */
	protected function should_log_ip() {

		if ( isset( $_POST['formData'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
			parse_str( wp_unslash( $_POST['formData'] ), $form_data ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
			if ( isset( $form_data['fusion_privacy_store_ip_ua'] ) ) {
				return ( true === $form_data['fusion_privacy_store_ip_ua'] || 'true' === $form_data['fusion_privacy_store_ip_ua'] );
			}
		}
		return $this->log_ip;
	}

	/**
	 * Check if we want to log IP for a form submission.
	 *
	 * @access protected
	 * @since 3.1
	 * @return bool
	 */
	protected function should_log_ua() {

		if ( isset( $_POST['formData'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
			parse_str( wp_unslash( $_POST['formData'] ), $form_data ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
			if ( isset( $form_data['fusion_privacy_store_ip_ua'] ) ) {
				return ( true === $form_data['fusion_privacy_store_ip_ua'] || 'true' === $form_data['fusion_privacy_store_ip_ua'] );
			}
		}
		return $this->log_ua;
	}

	/**
	 * Get The expiration date for privacy-related data (IP & UA).
	 *
	 * @access protected
	 * @since 3.1
	 * @return string Return gmdate result.
	 */
	protected function get_submission_privacy_expire_date() {

		$time_from_now = $this->expiration;

		// Get current time.
		$current = (int) gmdate( 'U' );

		if ( isset( $_POST['formData'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
			parse_str( wp_unslash( $_POST['formData'] ), $form_data ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
			if ( isset( $form_data['fusion_privacy_expiration_interval'] ) ) {
				$time_from_now = absint( $form_data['fusion_privacy_expiration_interval'] ) * MONTH_IN_SECONDS;
			}
		}

		// Calculate the expiration time.
		$expire_time = $current + $time_from_now;

		// Return expiration properly formatted as date.
		// No time needed, we store it in the datyabase as date since scrubbing runs once/day.
		return gmdate( 'Y-m-d', $expire_time );
	}

	/**
	 * Get The scrub action that should be performed on expiration.
	 *
	 * @access protected
	 * @since 3.1
	 * @return string Returns anonymize|delete|ignore.
	 */
	protected function get_submission_scrub_action() {

		$on_expiration = $this->on_expiration;

		if ( isset( $_POST['formData'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
			parse_str( wp_unslash( $_POST['formData'] ), $form_data ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
			if ( isset( $form_data['privacy_expiration_action'] ) ) {
				$on_expiration = $form_data['privacy_expiration_action'];
			}
		}
		if ( 'anonymize' === $on_expiration || 'delete' === $on_expiration || 'ignore' === $on_expiration ) {
			return $on_expiration;
		}

		// Fallback just to be sure.
		return 'anonymize';
	}

	/**
	 * Checks if we need to run the scrubbing action oln this page-load
	 * and triggers the purge when needed.
	 *
	 * @access public
	 * @since 3.1
	 * @return void
	 */
	public function maybe_cleanup() {

		// Early exit if we don't need to cleanup.
		if ( ! $this->should_cleanup() ) {
			return;
		}

		$this->cleanup();
	}

	/**
	 * Checks if we need to cleanup the db.
	 *
	 * @access protected
	 * @since 3.1
	 * @return bool
	 */
	protected function should_cleanup() {
		$cleanup_time = (int) get_option( self::CLEANUP_DATETIME_OPTION );

		/**
		 * Return true if cleanup option is not set, or if time has elapsed.
		 *
		 * The 1st part of this condition will force the action to run the 1st time,
		 * therefore triggering the option to be updated in the clenup() method
		 * and preventing loops.
		 */
		return ( ! $cleanup_time || $cleanup_time <= time() );
	}

	/**
	 * Do the cleanup.
	 *
	 * @access protected
	 * @since 3.1
	 * @return void
	 */
	protected function cleanup() {
		global $wpdb;

		// The db.
		$db = new Fusion_Form_DB();

		// Get all submissions.
		// We only want submissions that have expired dates.
		$submissions = $db->get_results(
			$wpdb->prepare(
				"SELECT * FROM `{$wpdb->prefix}fusion_form_submissions` WHERE `{$wpdb->prefix}fusion_form_submissions`.`privacy_scrub_date` < %s",
				gmdate( 'Y-m-d' )
			)
		);

		// Cleanup the submissions.
		foreach ( $submissions as $entry ) {
			$this->cleanup_submission( $entry );
		}

		// Update the option so we know when to next run the cleanup action.
		$next_cleanup = time() + self::CLEANUP_INTERVAL;
		update_option( self::CLEANUP_DATETIME_OPTION, $next_cleanup );
	}

	/**
	 * Cleanup a submission's data.
	 *
	 * @access protected
	 * @since 3.1
	 * @param stdClass     $entry        The submission.
	 * @param string|false $force_action Leave false to do what the entry needs.
	 *                                   Set to delete|anonymize|ignore to force an action.
	 * @return void
	 */
	protected function cleanup_submission( $entry, $force_action = false ) {
		global $wpdb;
		$db = new Fusion_Form_DB();

		// Determine what we want to do.
		$action = $force_action ? $force_action : $entry->on_privacy_scrub;

		// Delete the entry if that's what we want to do.
		if ( 'delete' === $action ) {
			$submission = new Fusion_Form_DB_Submissions();
			$submission->delete( $entry->id );
		}

		// Anonymize the data.
		if ( 'anonymize' === $action ) {
			$db->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}fusion_form_submissions` SET `user_id` = 0 WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d;", $entry->id ) );
			$db->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}fusion_form_submissions` SET `ip` = '' WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d;", $entry->id ) );
			$db->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}fusion_form_submissions` SET `user_agent` = '' WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d;", $entry->id ) );
			$db->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}fusion_form_submissions` SET `user_agent` = '' WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d;", $entry->id ) );
			$db->query( $wpdb->prepare( "DELETE FROM `{$wpdb->prefix}fusion_form_entries` WHERE `{$wpdb->prefix}fusion_form_entries`.`submission_id` = %d AND `{$wpdb->prefix}fusion_form_entries`.`privacy` = 1", $entry->id ) );

		}

		// Remove privacy_scrub_date.
		$db->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}fusion_form_submissions` SET `privacy_scrub_date` = NULL WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d;", $entry->id ) );
	}

	/**
	 * Register the data exporter.
	 *
	 * @access public
	 * @since 3.1
	 * @link https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-exporter-to-your-plugin/
	 * @param array $exporters An array of all exporters.
	 * @return array           Returns $exporters with our own added.
	 */
	public function register_exporter( $exporters ) {
		$exporters['fusion-forms'] = [
			'exporter_friendly_name' => esc_html__( 'Form Submissions', 'fusion-builder' ),
			'callback'               => [ $this, 'personal_data_exporter' ],
		];
		return $exporters;
	}

	/**
	 * Register the data eraser.
	 *
	 * @access public
	 * @since 3.1
	 * @link https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-eraser-to-your-plugin/
	 * @param array $erasers An array of all erasers.
	 * @return array         Returns $erasers with our own added.
	 */
	public function register_eraser( $erasers ) {
		$erasers['fusion-forms'] = [
			'eraser_friendly_name' => esc_html__( 'Form Submissions', 'fusion-builder' ),
			'callback'             => [ $this, 'personal_data_eraser' ],
		];
		return $erasers;
	}

	/**
	 * The privacy data exporter.
	 *
	 * @access public
	 * @since 3.1
	 * @param string $email_address The form submission author email address.
	 * @return array                An array of personal data.
	 */
	public function personal_data_exporter( $email_address ) {
		global $wpdb;

		$data_to_export = [];

		// Get all submissions for this email.
		$submissions = $this->get_submissions_by_email( $email_address );

		// Get all fields. Will be used to get the field labels.
		$fusion_fields = new Fusion_Form_DB_Fields();
		$all_fields    = $fusion_fields->get();

		// Loop all user submissions and create the data to be exported.
		foreach ( $submissions as $entry ) {
			$submission_data_to_export = [];

			// Get the fields for this submission.
			$fusion_entries = new Fusion_Form_DB_Entries();
			$entry_fields   = $fusion_entries->get(
				[
					'where' => [ 'submission_id' => $entry->id ],
				]
			);

			// Loop submission fields and add data.
			foreach ( $entry_fields as $field ) {
				$submission_data_to_export[] = [
					'name'  => $this->get_field_label( $field, $all_fields ),
					'value' => $field->value,
				];
			}

			// Add submission to export-data array.
			$data_to_export[] = [
				'group_id'          => 'fusion_forms',
				'group_label'       => esc_html__( 'Form Submissions', 'fusion-builder' ),
				'group_description' => esc_html__( 'User&#8217;s form submissions data.' ),
				'item_id'           => "submission-{$entry->id}",
				'data'              => $submission_data_to_export,
			];
		}

		return [
			'data' => $data_to_export,
			'done' => true,
		];
	}

	/**
	 * Get the label for a field.
	 *
	 * Helper method for data exporter.
	 *
	 * @access protected
	 * @since 3.1
	 * @param stdClass $field  The field.
	 * @param array    $fields An array of all fields.
	 * @return string          Returns the field label.
	 */
	protected function get_field_label( $field, $fields ) {
		foreach ( $fields as $single_field ) {
			if ( $single_field->id === $field->field_id && $single_field->form_id === $field->form_id ) {
				return $single_field->field_label;
			}
		}
		return '';
	}

	/**
	 * Personal data eraser.
	 *
	 * @access public
	 * @since 3.1
	 * @param string $email_address The form submission author email address.
	 * @return array
	 */
	public function personal_data_eraser( $email_address ) {

		$items_removed = false;

		// Get all submissions for this email address.
		$submissions = $this->get_submissions_by_email( $email_address );

		// Loop submissions.
		foreach ( $submissions as $entry ) {

			// Sanity check.
			if ( ! is_object( $entry ) || ! isset( $entry->id ) ) {
				continue;
			}

			// Tell WP-Core that we have removed items.
			$items_removed = true;

			// Delete the submission.
			$this->cleanup_submission( $entry, 'delete' );
		}

		return [
			'items_removed'  => $items_removed,
			'items_retained' => false,
			'messages'       => [],
			'done'           => true,
		];
	}

	/**
	 * Get submissions by email address.
	 *
	 * @access protected
	 * @since 3.1
	 * @param string $email_address The email address.
	 * @return array
	 */
	protected function get_submissions_by_email( $email_address ) {
		global $wpdb;

		// Get the user-ID.
		$user = get_user_by( 'email', $email_address );

		// Init the db.
		$db = new Fusion_Form_DB();

		$submissions_by_user_id = [];
		$submissions_ids        = [];
		$submissions            = [];

		// Get submissions by user-ID.
		// This will account for submissions made by logged-in users.
		if ( $user ) {

			// Get submissions for this user.
			$submissions_by_user_id = $db->get_results(
				$wpdb->prepare(
					"SELECT * FROM `{$wpdb->prefix}fusion_form_submissions` WHERE `{$wpdb->prefix}fusion_form_submissions`.`user_id` = %d",
					$user->ID
				)
			);
		}

		// Get submissions by email address.
		// This will account for submissions made by logged-out users.
		$fusion_entries = new Fusion_Form_DB_Entries();
		$fields         = $fusion_entries->get(
			[
				'where' => [ 'value' => "'" . $email_address . "'" ],
			]
		);

		// Add logged-in submissions to our submissions array.
		foreach ( $submissions_by_user_id as $submission ) {
			$submissions[]     = $submission;
			$submissions_ids[] = $submission->id;
		}

		// Add logged-out submissions to our submissions array.
		foreach ( $fields as $field ) {

			// If this submission is not already in our array, add it.
			if ( ! in_array( $field->submission_id, $submissions_ids ) ) { // phpcs:ignore WordPress.PHP.StrictInArray

				// Get the submission object from its ID.
				$submission = $db->get_results(
					$wpdb->prepare(
						"SELECT * FROM `{$wpdb->prefix}fusion_form_submissions` WHERE `{$wpdb->prefix}fusion_form_submissions`.`id` = %d",
						$field->submission_id
					)
				);

				// Add to the array.
				$submissions[]     = $submission[0];
				$submissions_ids[] = $field->submission_id;
			}
		}

		return $submissions;
	}
}


Current_dir [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
26 Aug 2026 4.27 AM
docteuh / users
0755
admin-screens
--
26 Aug 2026 4.27 AM
docteuh / users
0755
critical-css
--
26 Aug 2026 4.27 AM
docteuh / users
0755
helpers
--
26 Aug 2026 4.27 AM
docteuh / users
0755
i18n
--
26 Aug 2026 4.27 AM
docteuh / users
0755
importer
--
26 Aug 2026 4.27 AM
docteuh / users
0755
lib
--
26 Aug 2026 4.27 AM
docteuh / users
0755
options
--
26 Aug 2026 4.27 AM
docteuh / users
0755
templates
--
26 Aug 2026 4.27 AM
docteuh / users
0755
woocommerce
--
26 Aug 2026 4.27 AM
docteuh / users
0755
bootstrap-compat.php
1.404 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
bootstrap.php
4.005 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-access-control.php
18.099 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-clone-posts.php
6.39 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-demo-import.php
9.663 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-layout-conditions.php
8.299 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-nav-walker.php
62.024 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-off-canvas-admin.php
6.993 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-off-canvas-front-end.php
34.571 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-off-canvas-table.php
11.708 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-off-canvas.php
8.525 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-studio-admin.php
15.814 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-studio-remove.php
3.5 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-studio.php
10.903 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-awb-woo-filters.php
20.748 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-admin.php
29.584 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-dynamic-css.php
7.231 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-element-helper.php
13.69 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-gutenberg.php
15.266 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-library-table.php
15.083 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-library.php
73.326 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-options-panel.php
6.718 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-options.php
5.465 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-redux.php
1.899 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-builder-woocommerce.php
6.141 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-column-element.php
121.79 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-component.php
5.263 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-custom-icons-table.php
10.904 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-dummy-post.php
3.055 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-dynamic-data-callbacks.php
54.171 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-dynamic-data.php
78.321 KB
20 Nov 2023 7.14 PM
docteuh / users
0644
class-fusion-element.php
15.557 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-elements-dynamic-css.php
1.495 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-builder-table.php
14.449 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-builder.php
28.184 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-entries.php
2.205 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-fields.php
2.8 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-forms.php
7.889 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-install.php
7.239 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-items.php
4.778 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-privacy.php
15.198 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db-submissions.php
1.75 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-db.php
2.374 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-export-single-form.php
3.647 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-list-table.php
11.473 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-submit.php
39.319 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-form-widget.php
4.028 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-hubspot.php
52.925 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-languages-updater-api.php
6.472 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-mailchimp.php
36.697 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-row-element.php
6.404 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-template-builder-table.php
12.915 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-template-builder.php
106.724 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-woo-component.php
12.091 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
class-fusion-woo-products-component.php
24.309 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
helpers.php
97.462 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
shortcodes.php
12.617 KB
20 Nov 2023 7.12 PM
docteuh / users
0644
templates.php
2.423 KB
20 Nov 2023 7.12 PM
docteuh / users
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF