Files
roi-theme/wp-content/plugins/wp-marketing-automations-pro/rules/rules/affiliatewp.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

785 lines
20 KiB
PHP
Executable File

<?php
if ( bwfan_is_affiliatewp_active() ) {
class BWFAN_Rule_Affiliate_Unpaid_Amount extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'affiliate_unpaid_amount' );
}
public function get_condition_input_type() {
return 'Text';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$result = false;
$affiliate_id = isset( $automation_data['global']['affiliate_id'] ) ? $automation_data['global']['affiliate_id'] : 0;
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
$total_earnings = 0;
if ( ! empty( $affiliate->unpaid_earnings ) ) {
$decimal = apply_filters( 'bwfan_get_decimal_values', 2 );
$total_earnings = round( $affiliate->unpaid_earnings, $decimal );
}
$value = (float) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $total_earnings === $value;
break;
case '!=':
$result = $total_earnings !== $value;
break;
case '>':
$result = $total_earnings > $value;
break;
case '<':
$result = $total_earnings < $value;
break;
case '>=':
$result = $total_earnings >= $value;
break;
case '<=':
$result = $total_earnings <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function is_match( $rule_data ) {
$earnings = (float) $this->get_unpaid_amount();
$value = (float) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $earnings === $value;
break;
case '!=':
$result = $earnings !== $value;
break;
case '>':
$result = $earnings > $value;
break;
case '<':
$result = $earnings < $value;
break;
case '>=':
$result = $earnings >= $value;
break;
case '<=':
$result = $earnings <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function get_unpaid_amount() {
$affiliate_id = BWFAN_Core()->rules->getRulesData( 'affiliate_id' );
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
$total_earnings = 0;
if ( ! empty( $affiliate->unpaid_earnings ) ) {
$decimal = apply_filters( 'bwfan_get_decimal_values', 2 );
$total_earnings = round( $affiliate->unpaid_earnings, $decimal );
}
return $total_earnings;
}
public function ui_view() {
?>
Affiliate Unpaid Earnings
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
class BWFAN_Rule_Affiliate_Total_Earnings extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'affiliate_total_earnings' );
}
public function get_condition_input_type() {
return 'Text';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$result = false;
$affiliate_id = isset( $automation_data['global']['affiliate_id'] ) ? $automation_data['global']['affiliate_id'] : 0;
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
$total_earnings = 0;
$earnings = $affiliate->unpaid_earnings + $affiliate->earnings;
if ( ! empty( $earnings ) ) {
$decimal = apply_filters( 'bwfan_get_decimal_values', 2 );
$total_earnings = round( $earnings, $decimal );
}
$value = (float) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $total_earnings === $value;
break;
case '!=':
$result = $total_earnings !== $value;
break;
case '>':
$result = $total_earnings > $value;
break;
case '<':
$result = $total_earnings < $value;
break;
case '>=':
$result = $total_earnings >= $value;
break;
case '<=':
$result = $total_earnings <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function is_match( $rule_data ) {
$earnings = (float) $this->get_total_earnings();
$value = (float) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $earnings === $value;
break;
case '!=':
$result = $earnings !== $value;
break;
case '>':
$result = $earnings > $value;
break;
case '<':
$result = $earnings < $value;
break;
case '>=':
$result = $earnings >= $value;
break;
case '<=':
$result = $earnings <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function get_total_earnings() {
$affiliate_id = BWFAN_Core()->rules->getRulesData( 'affiliate_id' );
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
$total_earnings = 0;
$earnings = $affiliate->unpaid_earnings + $affiliate->earnings;
if ( ! empty( $earnings ) ) {
$decimal = apply_filters( 'bwfan_get_decimal_values', 2 );
$total_earnings = round( $earnings, $decimal );
}
return $total_earnings;
}
public function ui_view() {
?>
Affiliate Total Earnings
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
class BWFAN_Rule_Affiliate_Total_Visits extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'affiliate_total_visits' );
}
/** v2 Methods: START */
public function get_rule_type() {
return 'Number';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$result = false;
$affiliate_id = isset( $automation_data['global']['affiliate_id'] ) ? $automation_data['global']['affiliate_id'] : 0;
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
$visits = (int) $affiliate->visits;
$value = (int) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $visits === $value;
break;
case '!=':
$result = $visits !== $value;
break;
case '>':
$result = $visits > $value;
break;
case '<':
$result = $visits < $value;
break;
case '>=':
$result = $visits >= $value;
break;
case '<=':
$result = $visits <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
/** v2 Methods: END */
public function get_condition_input_type() {
return 'Text';
}
public function is_match( $rule_data ) {
$visits = (int) $this->get_visits();
$value = (int) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $visits === $value;
break;
case '!=':
$result = $visits !== $value;
break;
case '>':
$result = $visits > $value;
break;
case '<':
$result = $visits < $value;
break;
case '>=':
$result = $visits >= $value;
break;
case '<=':
$result = $visits <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function get_visits() {
$affiliate_id = BWFAN_Core()->rules->getRulesData( 'affiliate_id' );
if ( empty( $affiliate_id ) ) {
return 0;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return 0;
}
return $affiliate->visits;
}
public function ui_view() {
?>
Affiliate Total Visits
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
class BWFAN_Rule_Selected_Range_Referrals_Count extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'selected_range_referrals_count' );
$this->description = __( 'is equal to', 'wp-marketing-automations-pro' );
}
/** v2 Methods: START */
public function get_rule_type() {
return 'Number';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$referrals_count = (int) isset( $automation_data['global']['referral_count'] ) ? $automation_data['global']['referral_count'] : 0;
$value = (int) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $referrals_count === $value;
break;
case '!=':
$result = $referrals_count !== $value;
break;
case '>':
$result = $referrals_count > $value;
break;
case '<':
$result = $referrals_count < $value;
break;
case '>=':
$result = $referrals_count >= $value;
break;
case '<=':
$result = $referrals_count <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
/** v2 Methods: END */
public function get_condition_input_type() {
return 'Text';
}
public function is_match( $rule_data ) {
$referrals_count = (int) BWFAN_Core()->rules->getRulesData( 'referral_count' );
$value = (int) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $referrals_count === $value;
break;
case '!=':
$result = $referrals_count !== $value;
break;
case '>':
$result = $referrals_count > $value;
break;
case '<':
$result = $referrals_count < $value;
break;
case '>=':
$result = $referrals_count >= $value;
break;
case '<=':
$result = $referrals_count <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function ui_view() {
?>
Referral Count (Selected Frequency)
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
class BWFAN_Rule_Selected_Range_Visits extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'selected_range_visits' );
}
/** v2 Methods: START */
public function get_rule_type() {
return 'Number';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$visits = (int) isset( $automation_data['global']['visits'] ) ? $automation_data['global']['visits'] : 0;
$value = (int) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $visits === $value;
break;
case '!=':
$result = $visits !== $value;
break;
case '>':
$result = $visits > $value;
break;
case '<':
$result = $visits < $value;
break;
case '>=':
$result = $visits >= $value;
break;
case '<=':
$result = $visits <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
/** v2 Methods: END */
public function get_condition_input_type() {
return 'Text';
}
public function is_match( $rule_data ) {
$visits = (int) BWFAN_Core()->rules->getRulesData( 'visits' );
$value = (int) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $visits === $value;
break;
case '!=':
$result = $visits !== $value;
break;
case '>':
$result = $visits > $value;
break;
case '<':
$result = $visits < $value;
break;
case '>=':
$result = $visits >= $value;
break;
case '<=':
$result = $visits <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function ui_view() {
?>
Referral Visits (Selected Frequency)
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
class BWFAN_Rule_Affiliate_Rate extends BWFAN_Rule_Base {
public function __construct() {
$this->v2 = true;
parent::__construct( 'affiliate_rate' );
$this->description = 'Rate Type Percentage (%) only';
}
public function get_condition_input_type() {
return 'Text';
}
public function is_match_v2( $automation_data, $rule_data ) {
if ( ! isset( $automation_data['global'] ) || ! is_array( $automation_data['global'] ) ) {
return $this->return_is_match( false, $rule_data );
}
$affiliate_id = isset( $automation_data['global']['affiliate_id'] ) ? $automation_data['global']['affiliate_id'] : 0;
if ( empty( $affiliate_id ) ) {
return false;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return $this->return_is_match( false, $rule_data );
}
$rate_type = affwp_get_affiliate_rate_type( $affiliate_id );
if ( 'percentage' !== $rate_type ) {
return $this->return_is_match( false, $rule_data );
}
$affiliate_rate = affwp_get_affiliate_rate( $affiliate );
if ( ! empty( $affiliate_rate ) ) {
$rate = $affiliate_rate * 100;
}
$value = (float) $rule_data['data'];
switch ( $rule_data['rule'] ) {
case '==':
$result = $rate === $value;
break;
case '!=':
$result = $rate !== $value;
break;
case '>':
$result = $rate > $value;
break;
case '<':
$result = $rate < $value;
break;
case '>=':
$result = $rate >= $value;
break;
case '<=':
$result = $rate <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function is_match( $rule_data ) {
$rate = (float) $this->get_affiliate_rate();
if ( false === $rate ) {
return false;
}
$value = (float) $rule_data['condition'];
switch ( $rule_data['operator'] ) {
case '==':
$result = $rate === $value;
break;
case '!=':
$result = $rate !== $value;
break;
case '>':
$result = $rate > $value;
break;
case '<':
$result = $rate < $value;
break;
case '>=':
$result = $rate >= $value;
break;
case '<=':
$result = $rate <= $value;
break;
default:
$result = false;
break;
}
return $this->return_is_match( $result, $rule_data );
}
public function get_affiliate_rate() {
$affiliate_id = BWFAN_Core()->rules->getRulesData( 'affiliate_id' );
if ( empty( $affiliate_id ) ) {
return false;
}
$affiliate = affwp_get_affiliate( $affiliate_id );
if ( false === $affiliate ) {
return false;
}
$rate_type = affwp_get_affiliate_rate_type( $affiliate_id );
if ( 'percentage' !== $rate_type ) {
return false;
}
$affiliate_rate = affwp_get_affiliate_rate( $affiliate );
if ( ! empty( $affiliate_rate ) ) {
return $affiliate_rate * 100;
}
return false;
}
public function ui_view() {
?>
Affiliate Rate
<% var ops = JSON.parse('<?php echo wp_json_encode( $this->get_possible_rule_operators() ); ?>'); %>
<%= ops[operator] %>
<%= condition %>%
<?php
}
public function get_possible_rule_operators() {
$operators = array(
'==' => __( 'is equal to', 'wp-marketing-automations-pro' ),
'!=' => __( 'is not equal to', 'wp-marketing-automations-pro' ),
'>' => __( 'is greater than', 'wp-marketing-automations-pro' ),
'<' => __( 'is less than', 'wp-marketing-automations-pro' ),
'>=' => __( 'is greater or equal to', 'wp-marketing-automations-pro' ),
'<=' => __( 'is less or equal to', 'wp-marketing-automations-pro' ),
);
return $operators;
}
}
}