403Webshell
Server IP : 116.202.121.150  /  Your IP : 216.73.216.20
Web Server : Apache
System : Linux server5.febas.net 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
User : k9887-1 ( 1171)
PHP Version : 8.2.33
Disable Function : show_source, highlight_file, apache_child_terminate, apache_get_modules, apache_note, apache_setenv, virtual, dl, posix_getpwnam, posix_getpwuid, posix_mkfifo, posix_mknod, posix_setpgid, posix_setsid, posix_setuid, posix_uname, proc_nice, openlog, syslog, pfsockopen, system, shell_exec, passthru, popen, proc_open, exec
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/k9887-1/htdocs/_fisch/wp-content/plugins/the7-cli/src/Commands/The7/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/k9887-1/htdocs/_fisch/wp-content/plugins/the7-cli/src/Commands/The7/PostMeta.php
<?php
namespace The7CLI\Commands\The7;

use \WP_CLI;

defined( 'ABSPATH' ) || exit;

class PostMeta {

	const COMMAND = 'the7 post-meta';

	/**
	 * Delete unused post meta.
	 *
	 * ## EXAMPLES
	 *
	 *  wp the7 post-meta cleanup
	 *
	 */
	public function cleanup() {
		global $wpdb;

		$posts = $wpdb->get_results( "SELECT ID as id, post_type FROM $wpdb->posts" );
		if ( ! $posts ) {
			WP_CLI::success( 'There is nothing to do - no posts found.' );
		}

		include_once PRESSCORE_ADMIN_DIR . '/load-meta-boxes.php';

		do_action( 'admin_init' );

		$posts = wp_list_pluck( $posts, 'post_type', 'id' );

		$total_meta_data_removed = 0;
		foreach ( $posts as $post_id => $post_type ) {
			$meta_removed_per_post = $this->delete_unused_post_meta( $post_id, $post_type );
			$total_meta_data_removed += $meta_removed_per_post;
		}

		WP_CLI::success( 'All done. Processed ' . count( $posts ) . ' posts, ' . $total_meta_data_removed . ' meta removed.' );
	}

	protected function delete_unused_post_meta( $post_id, $post_type ) {
		global $DT_META_BOXES;

		$meta_data         = get_metadata( 'post', $post_id );
		$registered_fields = array();

		$affected_fields_count = 0;
		foreach ( $DT_META_BOXES as $meta_box ) {
			foreach ( $meta_box['fields'] as $field ) {
				$registered_fields[] = $field['id'];
			}

			if ( ! in_array( $post_type, $meta_box['pages'], true ) ) {
				continue;
			}

			$fields = $meta_box['fields'];

			if ( isset( $meta_box['only_on']['template'] ) ) {
				$post_template = get_post_meta( $post_id, '_wp_page_template', true );
				if ( ! in_array( $post_template, (array) $meta_box['only_on']['template'], true ) ) {
					foreach ( $fields as $field ) {
						if ( array_key_exists( $field['id'], $meta_data ) ) {
							delete_post_meta( $post_id, $field['id'] );
							$affected_fields_count++;
						}
					}

					continue;
				}
			}

			if ( isset( $meta_box['only_on']['meta_value'] ) ) {
				foreach ( (array) $meta_box['only_on']['meta_value'] as $meta_key => $meta_value ) {
					if ( get_post_meta( $post_id, $meta_key, true ) !== $meta_value ) {
						foreach ( $fields as $field ) {
							if ( array_key_exists( $field['id'], $meta_data ) ) {
								delete_post_meta( $post_id, $field['id'] );
								$affected_fields_count++;
							}
						}

						continue;
					}
				}
			}
		}

		$meta_data_to_delete = array_diff( array_keys( $meta_data ), $registered_fields );
		foreach ( $meta_data_to_delete as $meta_key_to_delete ) {
			if ( strpos( $meta_key_to_delete, '_dt_' ) === 0 ) {
				delete_post_meta( $post_id, $meta_key_to_delete );
				$affected_fields_count++;
			}
		}

		return $affected_fields_count;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit