'40961', 'slug' => 'agent-stamp', 'premium_slug' => 'agent-stamp-pro', 'type' => 'plugin', 'public_key' => 'pk_f08f3f26c2ab128fcfe9f92d86e05', 'is_premium' => false, 'premium_suffix' => '1 Store', 'has_premium_version' => true, 'has_addons' => false, 'has_paid_plans' => true, 'is_org_compliant' => true, 'parallel_activation' => array( 'enabled' => true, 'premium_version_basename' => 'agent-stamp-pro/agent-stamp-pro.php', ), 'trial' => array( 'days' => 14, 'is_require_payment' => false, ), 'menu' => array( 'slug' => 'agent-stamp', 'support' => false, 'contact' => false, ), ) ); } return $as_fs; } as_fs(); // Freemius rejects a root uninstall.php. WordPress still runs this on delete, through the SDK hook, on Freemius and on WordPress.org. as_fs()->add_action( 'after_uninstall', 'agent_stamp_uninstall' ); do_action( 'as_fs_loaded' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- Freemius loaded hook shared with Agent Stamp Pro. } /** * Remove the scheduled jobs, the settings and the agent visit table. Order stamps stay on the orders. */ function agent_stamp_uninstall() { if ( is_multisite() ) { foreach ( get_sites( array( 'fields' => 'ids', 'number' => 0 ) ) as $agent_stamp_site ) { switch_to_blog( $agent_stamp_site ); agent_stamp_uninstall_site(); restore_current_blog(); } return; } agent_stamp_uninstall_site(); } /** * One site's Agent Stamp data: settings, the agent visit table, cached keys, nonces and counters. */ function agent_stamp_uninstall_site() { global $wpdb; delete_option( 'agent_stamp_send_digest' ); delete_option( 'agent_stamp_scan' ); delete_option( 'agent_stamp_rules' ); delete_option( 'agent_stamp_db_version' ); foreach ( array( 'agent_stamp_weekly_digest', 'agent_stamp_prune_events' ) as $hook ) { $timestamp = wp_next_scheduled( $hook ); if ( $timestamp ) { wp_unschedule_event( $timestamp, $hook ); } } $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\\_transient\\_agent\\_stamp\\_%' OR option_name LIKE '\\_transient\\_timeout\\_agent\\_stamp\\_%'" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery $wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'agent_stamp_events' ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery,WordPress.DB.PreparedSQL.NotPrepared,WordPress.DB.DirectDatabaseQuery.SchemaChange } require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-request.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-agents.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-signature.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-classifier.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-witness.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-directory.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-report.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-evidence.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-history.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-scan.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-funnel.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-events.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-sensor.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-readiness.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-policy.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-payment.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-admin.php'; require_once AGENT_STAMP_DIR . 'includes/class-agentstamp-plugin.php'; // Captcha plugins read their allow lists before plugins_loaded finishes. AgentStamp_Policy::early(); register_activation_hook( __FILE__, array( 'AgentStamp_Plugin', 'activate' ) ); register_deactivation_hook( __FILE__, array( 'AgentStamp_Plugin', 'deactivate' ) ); add_action( 'plugins_loaded', static function () { if ( ! class_exists( 'WooCommerce' ) ) { add_action( 'admin_notices', static function () { if ( ! current_user_can( 'activate_plugins' ) ) { return; } echo '

'; echo esc_html__( 'Agent Stamp needs WooCommerce. Activate WooCommerce, then open an order.', 'agent-stamp' ); echo '

'; } ); return; } AgentStamp_Plugin::init(); } );