Settings > Akismet page. * * @since 1.1 */ class Plugin_Settings { /** * The current instance of the add-on. * * @since 1.1 * * @var null|GF_Akismet */ private $add_on; /** * Plugin_Settings constructor. * * @since 1.1 * * @param GF_Akismet $add_on The current instance of the add-on. */ public function __construct( $add_on = null ) { $this->add_on = $add_on instanceof GF_Akismet ? $add_on : gf_akismet(); } /** * Returns the fields to be displayed on the Forms > Settings > Akismet page. * * @since 1.1 * * @return array[] */ public function get_fields() { return array( array( 'title' => esc_html__( 'Akismet Settings', 'gravityformsakismet' ), 'description' => sprintf( '
%1$s %2$s%3$s .
', esc_html__( "Protect your form entries from spam using Akismet. Don't have an Akismet account?", 'gravityformsakismet' ), esc_html__( 'Sign up here', 'gravityformsakismet' ), esc_html__( '(opens in a new tab)', 'gravityformsakismet' ) ), 'fields' => array( array( 'name' => 'enabled', 'type' => 'toggle', 'toggle_label' => esc_html__( 'Enable Akismet Integration', 'gravityformsakismet' ), 'default_value' => true, 'save_callback' => function ( $field, $value ) { // Keeping the legacy core setting in sync in case the add-on is deactivated. $this->add_on->remove_disable_core_filter(); update_option( 'rg_gforms_enable_akismet', (bool) $value ); $this->add_on->add_disable_core_filter(); return $value; }, ), array( 'name' => 'api_key', 'label' => esc_html__( 'API Key', 'gravityformsakismet' ), 'type' => 'text', 'default_value' => $this->add_on->get_akismet_plugin_api_key(), 'required' => true, 'description' => sprintf( '', esc_html__( 'Click here to find your Akismet API Key', 'gravityformsakismet' ), esc_html__( '(opens in a new tab)', 'gravityformsakismet' ) ), 'dependency' => array( 'live' => true, 'fields' => array( array( 'field' => 'enabled', ), ), ), 'feedback_callback' => array( $this->add_on, 'verify_api_key' ), ), ), ), ); } }