Automattic / VIP-Coding-Standards

PHP_CodeSniffer ruleset to enforce WordPress VIP coding standards.
https://wpvip.com/documentation/how-to-install-php-code-sniffer-for-wordpress-com-vip/
Other
236 stars 40 forks source link

Flag if Advanced Custom Fields plugin version is 4.* #702

Open rebeccahum opened 3 years ago

rebeccahum commented 3 years ago

Describe the solution you'd like

On https://docs.wpvip.com/technical-references/plugins/acf-5-and-vip-go/, we prohibit using any ACF version 4:

Please note that while ACF version 5 can be used on most VIP Go sites (at customer discretion), ACF 4 should not be used.

What code should be reported as a violation?

/*
Plugin Name: Advanced Custom Fields
Plugin URI: http://www.advancedcustomfields.com/
Description: Customise WordPress with powerful, professional and intuitive fields
Version: 4.4.4
Author: Elliot Condon
Author URI: https://www.advancedcustomfields.com
Text Domain: acf
Domain Path: /lang
*/
/*
Plugin Name: Advanced Custom Fields PRO
Plugin URI: http://www.advancedcustomfields.com/
Description: Customise WordPress with powerful, professional and intuitive fields
Version: 4.4.4
Author: Elliot Condon
Author URI: https://www.advancedcustomfields.com
Text Domain: acf
Domain Path: /lang
*/

What code should not be reported as a violation?

/*
Plugin Name: Advanced Custom Fields
Plugin URI: https://www.advancedcustomfields.com
Description: Customize WordPress with powerful, professional and intuitive fields.
Version: 5.9.5
Author: Elliot Condon
Author URI: https://www.advancedcustomfields.com
Text Domain: acf
Domain Path: /lang
*/
/*
Plugin Name: Advanced Custom Fields PRO
Plugin URI: https://www.advancedcustomfields.com
Description: Customize WordPress with powerful, professional and intuitive fields.
Version: 5.9.5
Author: Elliot Condon
Author URI: https://www.advancedcustomfields.com
Text Domain: acf
Domain Path: /lang
*/
jrfnl commented 3 years ago

Note: a sniff which looks for this will need to look for both docblocks as well as comments, just in case someone would have changed the format used by ACF itself.

The sniff should probably also use a form of caching for performance, i.e. if the plugin header for ACF has already been seen and verified, bow out for the rest of files. Or do you think it at all likely that a site would ever have more than one ACF installed (ACF + Pro, but possibly with different versions) ?

rebeccahum commented 3 years ago

Or do you think it at all likely that a site would ever have more than one ACF installed (ACF + Pro, but possibly with different versions) ?

Definitely. Some do keep multiple versions and only activate one.