WPCF7_SWV_CompositeRule{}
The base class of SWV composite rules.
Хуков нет.
Использование
$WPCF7_SWV_CompositeRule = new WPCF7_SWV_CompositeRule(); // use class methods
Методы
- public add_rule( $rule )
- public matches( $context )
- public rules()
- public to_array()
- public validate( $context )
Код WPCF7_SWV_CompositeRule{} WPCF7 SWV CompositeRule{} CF7 5.7.5.1
abstract class WPCF7_SWV_CompositeRule extends WPCF7_SWV_Rule { protected $rules = array(); /** * Adds a sub-rule to this composite rule. * * @param WPCF7_SWV_Rule $rule Sub-rule to be added. */ public function add_rule( $rule ) { if ( $rule instanceof WPCF7_SWV_Rule ) { $this->rules[] = $rule; } } /** * Returns an iterator of sub-rules. */ public function rules() { foreach ( $this->rules as $rule ) { yield $rule; } } /** * Returns true if this rule matches the given context. * * @param array $context Context. */ public function matches( $context ) { return true; } /** * Validates with this rule's logic. * * @param array $context Context. */ public function validate( $context ) { foreach ( $this->rules() as $rule ) { if ( $rule->matches( $context ) ) { $result = $rule->validate( $context ); if ( is_wp_error( $result ) ) { return $result; } } } return true; } /** * Converts the properties to an array. * * @return array Array of properties. */ public function to_array() { $rules_arrays = array_map( function ( $rule ) { return $rule->to_array(); }, $this->rules ); return array_merge( parent::to_array(), array( 'rules' => $rules_arrays, ) ); } }