File Editor
Directories:
.. (Back)
Files:
Output.php
RestApi.php
Rules.php
Save.php
Create New File
Create
Edit File: Rules.php
<?php /** * EasyDigitalDownloads Rules class. * * @since 2.8.0 * * @package OMAPI * @author Gabriel Oliveira */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * EasyDigitalDownloads_Rules class. * * @since 2.8.0 */ class OMAPI_EasyDigitalDownloads_Rules extends OMAPI_Rules_Base { /** * Holds the meta fields used for checking output statuses. * * @since 2.8.0 * * @var array */ protected $fields = array( 'show_on_edd', 'is_edd_download', 'is_edd_checkout', 'is_edd_success_page', 'is_edd_failed_transaction_page', 'is_edd_purchase_history_page', 'is_edd_download_category', 'is_edd_download_tag', ); /** * Check for edd rules. * * @since 2.8.0 * * @throws OMAPI_Rules_False If rule doesn't match. * @throws OMAPI_Rules_True If rule matches. * @return void */ public function run_checks() { // If EDD is not connected we can ignore the EDD specific settings. if ( ! OMAPI_EasyDigitalDownloads::is_connected() ) { return; } try { $edd_checks = array( 'is_edd_download' => array( $this, 'is_edd_download' ), 'is_edd_checkout' => 'edd_is_checkout', 'is_edd_success_page' => 'edd_is_success_page', 'is_edd_failed_transaction_page' => 'edd_is_failed_transaction_page', 'is_edd_purchase_history_page' => 'edd_is_purchase_history_page', ); // If show_on_edd is selected, then we'll override the field_empty check for each page. $show_on_all_edd_pages = ! $this->rules->field_empty( 'show_on_edd' ); if ( $show_on_all_edd_pages ) { $this->rules ->set_global_override( false ) ->set_advanced_settings_field( 'show_on_edd', $this->rules->get_field_value( 'show_on_edd' ) ); } foreach ( $edd_checks as $field => $callback ) { // If show on all edd pages is not selected, and field is empty, then we don't need to check this. if ( ! $show_on_all_edd_pages && $this->rules->field_empty( $field ) ) { continue; } $rule_value = $this->rules->get_field_value( $field ); if ( $rule_value ) { $this->rules ->set_global_override( false ) ->set_advanced_settings_field( $field, $rule_value ); } if ( call_user_func( $callback ) ) { // If it passes, send it back. throw new OMAPI_Rules_True( $field ); } } } catch ( OMAPI_Rules_Exception $e ) { if ( $e instanceof OMAPI_Rules_True ) { throw new OMAPI_Rules_True( 'include edd', 0, $e ); } $this->rules->add_reason( $e ); } } /** * Check if the current page is a valid EDD Download page. * * @since 2.8.0 * * @return boolean True if current page is EDD Download, false otherwise or if it was not able to determine. */ public function is_edd_download() { // Get the current page/post id. $post_id = get_the_ID(); if ( ! $post_id || ! function_exists( 'edd_get_download' ) ) { return false; } // This method only returns the download if the post id passed through // is a valid EDD download object. Null otherwhise. $download = edd_get_download( $post_id ); return ! empty( $download ); } }
Save Changes
Rename File
Rename