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();