/** * 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; }
/** * 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; }