Make WordPress Core

Changeset 62310


Ignore:
Timestamp:
05/06/2026 09:44:53 PM (5 months ago)
Author:
jorgefilipecosta
Message:

Connectors: Register Akismet Anti-Spam as a connector.

Akismet is bundled with WordPress core, but it wasn't appearing on the Connectors screen even when present on the file system.

Partially reverts [62210], bringing back the main part of [62193].
Follow-up to [62210], [62193].
Developed in ​https://github.com/WordPress/wordpress-develop/pull/11688.

Props audrasjb, bluefuton, davidbaumwald, desrosj, eclev91, gziolo, johnbillion, jorbin, jorgefilipecosta, lukecarbis, matt, matveb, peterwilsoncc, westonruter.
See #65012.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/connectors.php

    r62289 r62310  
    210210                _wp_connectors_register_default_ai_providers( $registry );
    211211        }
     212
     213        // Non-AI default connectors.
     214        $registry->register(
     215                'akismet',
     216                array(
     217                        'name'           => __( 'Akismet Anti-spam' ),
     218                        'description'    => __( 'Protect your site from spam.' ),
     219                        'type'           => 'spam_filtering',
     220                        'plugin'         => array(
     221                                'file'      => 'akismet/akismet.php',
     222                                'is_active' => static function () {
     223                                        return defined( 'AKISMET_VERSION' );
     224                                },
     225                        ),
     226                        'authentication' => array(
     227                                'method'          => 'api_key',
     228                                'credentials_url' => 'https://akismet.com/get/',
     229                                'setting_name'    => 'wordpress_api_key',
     230                                'constant_name'   => 'WPCOM_API_KEY',
     231                        ),
     232                )
     233        );
    212234
    213235        /**
  • trunk/tests/phpunit/tests/connectors/wpConnectorsGetConnectorSettings.php

    r62210 r62310  
    3838                $this->assertArrayHasKey( 'openai', $connectors );
    3939                $this->assertArrayHasKey( 'anthropic', $connectors );
     40                $this->assertArrayHasKey( 'akismet', $connectors );
    4041                $this->assertArrayHasKey( 'mock-connectors-test', $connectors );
    41                 $this->assertCount( 4, $connectors );
     42                $this->assertCount( 5, $connectors );
    4243        }
    4344
    … …  
    5758                        $this->assertIsString( $connector_data['description'], "Connector '{$connector_id}' description should be a string." );
    5859                        $this->assertArrayHasKey( 'type', $connector_data, "Connector '{$connector_id}' is missing 'type'." );
    59                         $this->assertContains( $connector_data['type'], array( 'ai_provider' ), "Connector '{$connector_id}' has unexpected type '{$connector_data['type']}'." );
     60                        $this->assertContains( $connector_data['type'], array( 'ai_provider', 'spam_filtering' ), "Connector '{$connector_id}' has unexpected type '{$connector_data['type']}'." );
    6061                        $this->assertArrayHasKey( 'authentication', $connector_data, "Connector '{$connector_id}' is missing 'authentication'." );
    6162                        $this->assertIsArray( $connector_data['authentication'], "Connector '{$connector_id}' authentication should be an array." );
    … …  
    8081
    8182                        $this->assertArrayHasKey( 'setting_name', $connector_data['authentication'], "Connector '{$connector_id}' authentication is missing 'setting_name'." );
     83                        $this->assertNotEmpty( $connector_data['authentication']['setting_name'], "Connector '{$connector_id}' setting_name should not be empty." );
     84
     85                        if ( 'ai_provider' !== $connector_data['type'] ) {
     86                                continue;
     87                        }
     88
    8289                        $this->assertSame(
    8390                                'connectors_ai_' . str_replace( '-', '_', $connector_id ) . '_api_key',
    84                                 $connector_data['authentication']['setting_name'] ?? null,
    85                                 "Connector '{$connector_id}' setting_name does not match expected format."
     91                                $connector_data['authentication']['setting_name'],
     92                                "Connector '{$connector_id}' setting_name does not match expected AI provider format."
    8693                        );
    8794                }
Note: See TracChangeset for help on using the changeset viewer.