/**
  * Returns null if the user of the affiliate is the same as the current user.
  * @param int $affiliate_id
  * @return int affiliate id or null
  */
 public static function validate($affiliate_id)
 {
     $result = $affiliate_id;
     if ($affiliate_id !== null) {
         if ($affiliate = affiliates_get_affiliate($affiliate_id)) {
             if ($user_id = affiliates_get_affiliate_user($affiliate_id)) {
                 if ((int) $user_id === (int) get_current_user_id()) {
                     $result = null;
                 } else {
                     if (!empty($affiliate['email'])) {
                         if ($user = get_user_by('email', $affiliate['email'])) {
                             if ((int) $user->ID === (int) get_current_user_id()) {
                                 $result = null;
                             }
                         }
                     }
                 }
             }
         }
     }
     return $result;
 }
 /**
  * Renders the referrer's username.
  * @param array $atts
  * @param string $content not used
  * @return string
  */
 public static function referrer_user($atts, $content = null)
 {
     $options = shortcode_atts(array('direct' => false, 'display' => 'user_login'), $atts);
     extract($options);
     $output = '';
     require_once 'class-affiliates-service.php';
     $affiliate_id = Affiliates_Service::get_referrer_id();
     if ($affiliate_id) {
         if ($direct || $affiliate_id !== affiliates_get_direct_id()) {
             if ($user_id = affiliates_get_affiliate_user($affiliate_id)) {
                 if ($user = get_user_by('id', $user_id)) {
                     switch ($display) {
                         case 'user_login':
                             $output .= $user->user_login;
                             break;
                         case 'user_nicename':
                             $output .= $user->user_nicename;
                             break;
                         case 'user_email':
                             $output .= $user->user_email;
                             break;
                         case 'user_url':
                             $output .= $user->user_url;
                             break;
                         case 'display_name':
                             $output .= $user->display_name;
                             break;
                         default:
                             $output .= $user->user_login;
                     }
                     $output = wp_strip_all_tags($output);
                 }
             }
         }
     }
     return $output;
 }
function affiliate_referrer_info($attr = array(), $content = null)
{
    global $wpdb;
    $affiliate_referrer = 1;
    $active_plugins = get_option('active_plugins', array());
    $affiliates_pro_is_active = in_array('affiliates-pro/affiliates-pro.php', $active_plugins);
    $affiliates_entr_is_active = in_array('affiliates-pro/affiliates-enterprise.php', $active_plugins);
    $options = shortcode_atts(array('direct' => false, 'display' => 'user_login'), $attr);
    extract($options);
    $output = '';
    $user_id = get_current_user_id();
    if ($affiliates_entr_is_active) {
        $relations_table = _affiliates_get_tablename('affiliates_relations');
        if ($user_id && affiliates_user_is_affiliate($user_id)) {
            if ($affiliate_ids = affiliates_get_user_affiliate($user_id)) {
                foreach ($affiliate_ids as $affiliate_id) {
                    if ($affiliate_referrer = $wpdb->get_var($wpdb->prepare("SELECT from_affiliate_id FROM {$relations_table} WHERE to_affiliate_id=%d ", $affiliate_id))) {
                        continue;
                    }
                }
            }
        }
    } else {
        if ($affiliates_pro_is_active) {
            $affiliate_referrers = get_option('affiliate_referrers');
            $relations = count($affiliate_referrers);
            if ($user_id && affiliates_user_is_affiliate($user_id)) {
                if ($affiliate_ids = affiliates_get_user_affiliate($user_id)) {
                    $affiliate_id = $affiliate_ids[0];
                    for ($i = 0; $i <= $relations; $i++) {
                        foreach ($affiliate_referrers[$i] as $key => $value) {
                            if ($affiliate_id == $value) {
                                $affiliate_referrer = $key;
                            }
                        }
                    }
                }
            }
        } else {
            echo "<div class='error'>The <strong>Affiliates Referrer Info</strong> plugin requires on of the Affiliates plugins by <a href='http://itthinx.com'>Itthinx</a> to be installed and activated.</div>";
        }
    }
    if ($user_id = affiliates_get_affiliate_user($affiliate_referrer)) {
        if ($user = get_user_by('id', $user_id)) {
            switch ($display) {
                case 'user_login':
                    $output .= $user->user_login;
                    break;
                case 'user_nicename':
                    $output .= $user->user_nicename;
                    break;
                case 'user_email':
                    $output .= $user->user_email;
                    break;
                case 'user_url':
                    $output .= $user->user_url;
                    break;
                case 'display_name':
                    $output .= $user->display_name;
                    break;
                default:
                    $output .= $user->user_login;
            }
            $output = wp_strip_all_tags($output);
        }
    }
    return $output;
}
Example #4
0
/**
 * Attribute filter for overrides.
 * 
 * @param mixed $value
 * @param int $affiliate_id
 * @param string $key
 * @return mixed
 */
function affiliates_attribute_filter($value, $affiliate_id, $key)
{
    if ($user_id = affiliates_get_affiliate_user($affiliate_id)) {
        $maybe_value = get_user_meta($user_id, $key, true);
        if (!empty($maybe_value)) {
            $value = $maybe_value;
        }
    }
    return $value;
}