=')) { require_once plugin_dir_path(__FILE__) . 'includes/loader.php'; } /** * Handles plugin activation. * * Throws an error if the plugin is activated on an older version than PHP 5.6. */ function bitforms_activate_plugin($network_wide) { if (version_compare(PHP_VERSION, '5.6.0', '<')) { wp_die( 'Bit Form requires PHP version 5.6 or higher.', 'Error Activating' ); } do_action('bitforms_activation', $network_wide); } register_activation_hook(__FILE__, 'bitforms_activate_plugin'); /** * Handles plugin deactivation. */ function bitforms_deactivate_plugin($network_wide) { if (version_compare(PHP_VERSION, '5.6.0', '<')) { return; } do_action('bitforms_deactivation', $network_wide); } register_deactivation_hook(__FILE__, 'bitforms_deactivate_plugin'); /** * Handles plugin uninstall. * * @access private */ function bitforms_uninstall_plugin() { if (version_compare(PHP_VERSION, '5.6.0', '<')) { return; } do_action('bitforms_uninstall'); } register_uninstall_hook(__FILE__, 'bitforms_uninstall_plugin'); add_action('plugins_loaded', 'bitforms_check_pro_version'); function bitforms_check_pro_version() { if (!defined('BITFORMPRO_VERSION')) { return; } if (!version_compare(BITFORMPRO_VERSION, BITFORMS_REQUIRED_BITFORMPRO_VERSION, '>=')) { add_action('admin_notices', 'bitformsProUpgradeNotice'); } } function bitformsProUpgradeNotice() { // user meta calls safe here — admin_notices fires well after user initialisation $dismissed_for = get_user_meta(get_current_user_id(), 'bitforms_dismiss_pro_upgrade_notice', true); if (BITFORMS_REQUIRED_BITFORMPRO_VERSION === $dismissed_for) { return; } $update_url = esc_url(admin_url('plugins.php?plugin_status=upgrade')); $required = esc_html(BITFORMS_REQUIRED_BITFORMPRO_VERSION); // Keep HTML out of translatable strings to prevent translator HTML injection $message = '' . esc_html__('Bit Form Pro', 'bit-form') . ' ' . sprintf( /* translators: %s: minimum required version number */ esc_html__('requires an update to version %s or higher for full compatibility.', 'bit-form'), '' . $required . '' ) . ' ' . esc_html__('Update now', 'bit-form') . ''; wp_admin_notice( $message, [ 'type' => 'error', 'dismissible' => true, 'additional_classes' => ['bitforms-pro-upgrade-notice'], 'attributes' => [ 'data-nonce' => wp_create_nonce('bitforms_dismiss_pro_notice'), 'data-ajax-url' => esc_url(admin_url('admin-ajax.php')), ], 'paragraph_wrap' => true, ] ); // Script at footer — avoids mid-page inline script add_action('admin_footer', 'bitformsProUpgradeNoticeScript'); } function bitformsProUpgradeNoticeScript() { ?>