• File: Base.php
  • Full Path: /home/matthif/www/wp-content/plugins/optinmonster/OMAPI/Rules/Base.php
  • Date Modified: 01/24/2025 1:58 PM
  • File size: 1.71 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * Rules Base class.
 *
 * @since 2.13.0
 *
 * @package OMAPI
 * @author  Jutin Sternberg
 */

// Exit if accessed directly.
if ( ! defined'ABSPATH' ) ) {
    exit;
}

/**
 * OMAPI_Rules_Base class.
 *
 * @since 2.13.0
 */
abstract class OMAPI_Rules_Base {

    
/**
     * Holds the meta fields used for checking output statuses.
     *
     * @since 2.13.0
     *
     * @var array
     */
    
protected $fields = array();

    
/**
     * Holds the main Rules class instance.
     *
     * @since 2.13.0
     *
     * @var OMAPI_Rules
     */
    
public $rules;

    
/**
     * Initiates hooks
     *
     * @since 2.13.0
     */
    
public function init_hooks() {
        
add_filter'optin_monster_api_output_fields', array( $this'merge_fields' ), );
        
add_action'optinmonster_campaign_should_output_plugin_checks', array( $this'set_rules_and_run_checks' ), );
    }

    
/**
     * Getter for fields property
     *
     * @since 2.13.0
     *
     * @return array
     */
    
public function get_fields() {
        return 
$this->fields;
    }

    
/**
     * Merge fields array with the fields for this rules object.
     *
     * @since 2.13.0
     *
     * @param  array $fields The meta fields used for checking output statuses.
     *
     * @return array
     */
    
public function merge_fields$fields = array() ) {
        return 
array_merge$fields$this->get_fields() );
    }

    
/**
     * Sets the rules object, then runs rule checks.
     *
     * @since 2.13.0
     *
     * @param  OMAPI_Rules $rules The OMAPI_Rules object.
     *
     * @throws OMAPI_Rules_False|OMAPI_Rules_True
     * @return void
     */
    
public function set_rules_and_run_checks$rules ) {
        
$this->rules $rules;
        
$this->run_checks();
    }

    
/**
     * Runs rule checks.
     *
     * @since 2.13.0
     *
     * @throws OMAPI_Rules_False|OMAPI_Rules_True
     * @return void
     */
    
abstract public function run_checks();
}