MOON
Server: Apache
System: Linux server1.primemusicproductions.com 4.18.0-477.27.2.el8_8.x86_64 #1 SMP Fri Sep 29 08:21:01 EDT 2023 x86_64
User: primrwxj (1001)
PHP: 8.3.3
Disabled: NONE
Upload Files
File: /home/primrwxj/thepassiveincomeideas.com/wp-content/plugins/wpauto-pro/autoseo.php
<?php

define( 'WPAUTO_SEO_DIR', plugin_dir_path( __FILE__ ) . 'seo/' );
define( 'WPAUTO_SEO_URL', plugin_dir_url( __FILE__ ) . 'seo/' );

class WPAuto_SEO {

	public static $instance = null;
	
	public function __construct() {
				
		// Activation hook
		register_activation_hook( WPAUTO_FILE , array( $this, 'wpauto_seo_activation' ) );
		
		// init plugin process
		$this->init();
								
	}
		
	public function init() {
		
		if( is_admin() ) {
			$site_data = get_option( 'wpauto_seo_site_data' );
			if( empty( $site_data ) ) {
				// set auto seo site data
				$this->wpauto_seo_site_data();
			}			
		}
		
		add_action( 'save_post', [ $this, 'wpauto_save_post' ], 10, 3 );
				
		// init seo functions
		require_once WPAUTO_SEO_DIR . "init.php";
		
	}
	
	public function wpauto_save_post( $post_id, $post, $update ) {
		
		// Validate post object before accessing properties
		if( !$post || !is_object( $post ) || !isset( $post->post_type ) ) {
			return;
		}
		
		// update seo data
		$post_type = $post->post_type;
		$site_data = get_option( 'wpauto_seo_site_data' );
		$count_pt = wp_count_posts($post_type);
		$pt_processed = $this->get_seo_update_count($post_type);
		if( !empty( $site_data ) ) {
			$site_data[$post_type] = [ 'processed' => $pt_processed, 'total' => $count_pt->publish ];
			update_option( 'wpauto_seo_site_data', $site_data );
		}
		
	}
	
	public function get_seo_update_count( $post_type ) {
		
		$args = array(
			'post_type'			=> $post_type,
			'posts_per_page'	=> -1,
			'meta_query' => array(
				'relation' => 'OR',
				array(
					'key'		=> 'wpauto_seo_data',
					'value'		=> '',
					'compare'	=> '!='
				)
			)
		);
		$query = new WP_Query( $args );
		$n = $query->found_posts;
		
		return absint( $n );
		
	}
	
	public function wpauto_seo_activation() {
		
		// set default options if option empty
		$options = get_option( 'wpauto_seo_options' );
		if( empty( $options ) ) {
			$default_options = '{"enable_wpauto_seo":"0","plugin_name":"none","enable_post":"1","enabled_post_meta":["title","desc","",""],"enable_page":"1","enabled_page_meta":["title","desc",""],"enable_product":"1","enabled_product_meta":["title","desc","",""],"override_meta_title":"0","override_meta_description":"0","override_meta_keyword":"0","override_meta_tags":"0","n_tags":"2","n_keywords":"1","enable_cron":"","cron_every":"10","cron_unit":"1","lang":"en","enable_ai_translator":"0","enable_custom_prompts":"0","custom_title_prompt":"","custom_description_prompt":"","custom_keyword_prompt":"","custom_tags_prompt":""}';
			$options = json_decode( $default_options, true );			
			update_option( 'wpauto_seo_options', $options );
		}
				
		// set actived seo plugin
		$actived_plugin = $this->wpauto_seo_set_installed_plugin();
		if( $actived_plugin ) {
			$options['plugin_name'] = $actived_plugin;
		}
		update_option( 'wpauto_seo_options', $options );
		
		// activation redirect
		add_option( 'wpauto_seo_activation_redirect', true );
		
		// set auto seo site data
		$this->wpauto_seo_site_data();
		
	}
	
	public function wpauto_seo_site_data() {
		
		$site_data = get_option( 'wpauto_seo_site_data' );
		if( empty( $site_data ) ) {
			$count_posts = wp_count_posts('post');
			$count_pages = wp_count_posts('page');			
			$post_counts = [
				'post' => [ 'processed' => 0, 'total' => $count_posts->publish ],
				'page' => [ 'processed' => 0, 'total' => $count_pages->publish ]
			];
			$product_exists = post_type_exists( 'product' );
			if( $product_exists ) { 
				$count_products = wp_count_posts('product');
				$post_counts['product'] = [ 'processed' => 0, 'total' => $count_products->publish ];
			} else {
				$post_counts['product'] = [ 'processed' => 0, 'total' => 0 ];
			}
			update_option( 'wpauto_seo_site_data', $post_counts );
		}
		
	}
	
	public function wpauto_seo_set_installed_plugin() {
		
		$plugins = [
			'wordpress-seo/wp-seo.php' => 'yoast',
			'seo-by-rank-math/rank-math.php' => 'rm',
			'all-in-one-seo-pack/all_in_one_seo_pack.php' => 'aoseo',
			'wp-seopress/seopress.php' => 'seopress',
			'autodescription/autodescription.php' => 'seoframework',
			'squirrly-seo/squirrly.php' => 'squirrly-seo',
			'seo-simple-pack/seo-simple-pack.php' => 'seo-simple-pack',
			'cds-simple-seo/cds-simple-seo.php' => 'simple-seo',
			'wp-meta-seo/wp-meta-seo.php' => 'wp-meta-seo',
			'slim-seo/slim-seo.php' => 'slim-seo',
			'smartcrawl-seo/wpmu-dev-seo.php' => 'smartcrawl-seo'
		];
		
		foreach( $plugins as $base => $plugin_key ) {
			if( is_plugin_active( $base ) ) return $plugin_key;
		}
		
		return 'none';
		
	}
	
	public static function instance() {
		if ( is_null( self::$instance ) ) {
			self::$instance = new self();
		}
		return self::$instance;
	}
	
} WPAuto_SEO::instance();