/**
  * Get the data being exported
  *
  * @access public
  * @since 1.3
  * @return array $data Data for Export
  */
 public function get_data()
 {
     $args = array('status' => $this->status, 'number' => -1);
     $data = array();
     $affiliates = affiliate_wp()->affiliates->get_affiliates($args);
     if ($affiliates) {
         foreach ($affiliates as $affiliate) {
             $data[] = array('affiliate_id' => $affiliate->affiliate_id, 'email' => affwp_get_affiliate_email($affiliate->affiliate_id), 'payment_email' => affwp_get_affiliate_payment_email($affiliate->affiliate_id), 'username' => affwp_get_affiliate_login($affiliate->affiliate_id), 'rate' => affwp_get_affiliate_rate($affiliate->affiliate_id), 'rate_type' => affwp_get_affiliate_rate_type($affiliate->affiliate_id), 'earnings' => $affiliate->earnings, 'referrals' => $affiliate->referrals, 'visits' => $affiliate->visits, 'status' => $affiliate->status, 'date_registered' => $affiliate->date_registered);
         }
     }
     $data = apply_filters('affwp_export_get_data', $data);
     $data = apply_filters('affwp_export_get_data_' . $this->export_type, $data);
     return $data;
 }
 /**
  * Get the data being exported
  *
  * @access public
  * @since 1.0
  * @return array $data Data for Export
  */
 public function get_data()
 {
     $args = array('status' => 'unpaid', 'date' => !empty($this->date) ? $this->date : '', 'number' => -1);
     // Final data to be exported
     $data = array();
     // The affiliates that have earnings to be paid
     $affiliates = array();
     // The list of referrals that are possibly getting marked as paid
     $to_maybe_pay = array();
     // Retrieve the referrals from the database
     $referrals = affiliate_wp()->referrals->get_referrals($args);
     // The minimum payout amount
     $minimum = !empty($_POST['minimum']) ? sanitize_text_field(affwp_sanitize_amount($_POST['minimum'])) : 0;
     if ($referrals) {
         foreach ($referrals as $referral) {
             if (in_array($referral->affiliate_id, $affiliates)) {
                 // Add the amount to an affiliate that already has a referral in the export
                 $amount = $data[$referral->affiliate_id]['amount'] + $referral->amount;
                 $data[$referral->affiliate_id]['amount'] = $amount;
             } else {
                 $data[$referral->affiliate_id] = array('email' => affwp_get_affiliate_payment_email($referral->affiliate_id), 'amount' => $referral->amount, 'currency' => !empty($referral->currency) ? $referral->currency : affwp_get_currency());
                 $affiliates[] = $referral->affiliate_id;
             }
             // Add the referral to the list of referrals to maybe payout
             if (!array_key_exists($referral->affiliate_id, $to_maybe_pay)) {
                 $to_maybe_pay[$referral->affiliate_id] = array();
             }
             $to_maybe_pay[$referral->affiliate_id][] = $referral->referral_id;
         }
         // Now determine which affiliates are above the minimum payout amount
         if ($minimum > 0) {
             foreach ($data as $affiliate_id => $payout) {
                 if ($payout['amount'] < $minimum) {
                     unset($data[$affiliate_id]);
                     unset($to_maybe_pay[$affiliate_id]);
                 }
             }
         }
         // We now know which referrals should be marked as paid
         foreach ($to_maybe_pay as $referral_list) {
             foreach ($referral_list as $referral_id) {
                 affwp_set_referral_status($referral_id, 'paid');
             }
         }
     }
     $data = apply_filters('affwp_export_get_data', $data);
     $data = apply_filters('affwp_export_get_data_' . $this->export_type, $data);
     return $data;
 }
 /**
  * Get the data being exported
  *
  * @access public
  * @since 1.0
  * @return array $data Data for Export
  */
 public function get_data()
 {
     $args = array('status' => $this->status, 'date' => !empty($this->date) ? $this->date : '', 'affiliate_id' => $this->affiliate, 'number' => -1);
     $data = array();
     $affiliates = array();
     $referral_ids = array();
     $referrals = affiliate_wp()->referrals->get_referrals($args);
     if ($referrals) {
         foreach ($referrals as $referral) {
             $data[] = array('affiliate_id' => $referral->affiliate_id, 'email' => affwp_get_affiliate_email($referral->affiliate_id), 'payment_email' => affwp_get_affiliate_payment_email($referral->affiliate_id), 'amount' => $referral->amount, 'currency' => $referral->currency, 'campaign' => $referral->campaign, 'reference' => $referral->reference, 'context' => $referral->context, 'status' => $referral->status, 'date' => $referral->date);
         }
     }
     $data = apply_filters('affwp_export_get_data', $data);
     $data = apply_filters('affwp_export_get_data_' . $this->export_type, $data);
     return $data;
 }
<?php

$affiliate_id = affwp_get_affiliate_id();
$user_email = affwp_get_affiliate_email($affiliate_id);
$payment_email = affwp_get_affiliate_payment_email($affiliate_id, $user_email);
// Fallback to user_email
?>

<div id="affwp-affiliate-dashboard-profile" class="affwp-tab-content">

	<h4><?php 
_e('Profile Settings', 'affiliate-wp');
?>
</h4>

	<form id="affwp-affiliate-dashboard-profile-form" class="affwp-form" method="post">

		<div class="affwp-wrap affwp-payment-email-wrap">
			<label for="affwp-payment-email"><?php 
_e('Your payment email', 'affiliate-wp');
?>
</label>
			<input id="affwp-payment-email" type="email" name="payment_email" value="<?php 
echo esc_attr($payment_email);
?>
" />
		</div>

		<div class="affwp-wrap affwp-send-notifications-wrap">
			<input id="affwp-referral-notifications" type="checkbox" name="referral_notifications" value="1" <?php 
checked(true, get_user_meta(affwp_get_affiliate_user_id($affiliate_id), 'affwp_referral_notifications', true));
Esempio n. 5
0
 /**
  * Determine if the passed email belongs to the affiliate
  *
  * Checks a given email address against the referring affiliate's
  * user email and payment email addresses to prevent customers from
  * referring themselves.
  *
  * @access  public
  * @since   1.6
  * @param   string $email
  * @return  bool
  */
 public function is_affiliate_email($email)
 {
     $is_affiliate_email = false;
     // Get affiliate emails
     $user_email = affwp_get_affiliate_email($this->affiliate_id);
     $payment_email = affwp_get_affiliate_payment_email($this->affiliate_id);
     // True if the email is valid and matches affiliate user email or payment email, otherwise false
     $is_affiliate_email = is_email($email) && ($user_email === $email || $payment_email === $email);
     return (bool) apply_filters('affwp_is_customer_email_affiliate_email', $is_affiliate_email, $email, $this->affiliate_id);
 }
Esempio n. 6
0
 /**
  * Determine if the passed email belongs to the affiliate
  *
  * Checks a given email address against the referring affiliate's
  * user email and payment email addresses to prevent customers from
  * referring themselves.
  *
  * @access  public
  * @since   1.6
  * @param   string $email
  * @return  bool
  */
 public function is_affiliate_email($email, $affiliate_id = 0)
 {
     $is_affiliate_email = false;
     // allow an affiliate ID to be passed in
     $affiliate_id = isset($affiliate_id) ? $affiliate_id : $this->get_affiliate_id();
     // Get affiliate emails
     $user_email = affwp_get_affiliate_email($affiliate_id);
     $payment_email = affwp_get_affiliate_payment_email($affiliate_id);
     // True if the email is valid and matches affiliate user email or payment email, otherwise false
     $is_affiliate_email = is_email($email) && ($user_email === $email || $payment_email === $email);
     return (bool) apply_filters('affwp_is_customer_email_affiliate_email', $is_affiliate_email, $email, $affiliate_id);
 }
 function test_get_affiliate_payment_email()
 {
     $args = array('affiliate_id' => $this->_affiliate_id, 'payment_email' => '*****@*****.**');
     affwp_update_affiliate($args);
     $this->assertEquals('*****@*****.**', affwp_get_affiliate_payment_email($this->_affiliate_id));
 }