Example #1
0
/**
 * Process affiliate deletion requests
 *
 * @since 1.2
 * @param $data array
 * @return void
 */
function affwp_process_affiliate_deletion($data)
{
    if (!is_admin()) {
        return;
    }
    if (!current_user_can('manage_affiliates')) {
        wp_die(__('You do not have permission to delete affiliate accounts', 'affiliate-wp'), __('Error', 'affiliate-wp'), array('response' => 403));
    }
    if (!wp_verify_nonce($data['affwp_delete_affiliates_nonce'], 'affwp_delete_affiliates_nonce')) {
        wp_die(__('Security check failed', 'affiliate-wp'), __('Error', 'affiliate-wp'), array('response' => 403));
    }
    if (empty($data['affwp_affiliate_ids']) || !is_array($data['affwp_affiliate_ids'])) {
        wp_die(__('No affiliate IDs specified for deletion', 'affiliate-wp'), __('Error', 'affiliate-wp'), array('response' => 400));
    }
    $to_delete = array_map('absint', $data['affwp_affiliate_ids']);
    $delete_users = isset($data['affwp_delete_users_too']) && current_user_can('delete_users');
    foreach ($to_delete as $affiliate_id) {
        if ($delete_users) {
            require_once ABSPATH . 'wp-admin/includes/user.php';
            $user_id = affwp_get_affiliate_user_id($affiliate_id);
            if ((int) $user_id !== (int) get_current_user_id()) {
                // Don't allow a user to delete themself
                wp_delete_user($user_id);
            }
        }
        affwp_delete_affiliate($affiliate_id, true);
    }
    wp_safe_redirect(admin_url('admin.php?page=affiliate-wp-affiliates&affwp_notice=affiliate_deleted'));
    exit;
}
/**
 * Restrict commission to purchased products in Easy Digital Downloads
 *
 * Make sure to enable "Ignore Zero Referrals?" from Affiliates -> Settings -> Misc
 * If you would like 0.00 referrals to be ignored.
*/
function affwp_edd_restrict_commission_to_purchased_products($referral_amount, $affiliate_id, $amount, $reference, $product_id)
{
    // get referring affiliate ID
    $affiliate_id = affiliate_wp()->tracking->get_affiliate_id();
    // get user ID of referring affiliate
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    if (!(function_exists('edd_has_user_purchased') && edd_has_user_purchased($user_id, array($product_id)))) {
        $referral_amount = 0.0;
    }
    return $referral_amount;
}
/**
 * Show a different image/banner/logo based on which affiliate is being tracked
 *
 * @since 1.0
 * @return string Image banner of affiliate
 */
function affwp_affiliate_banners_get_banner()
{
    // get the affiliate ID from query string
    $ref_var = isset($_GET[affiliate_wp()->tracking->get_referral_var()]) ? $_GET[affiliate_wp()->tracking->get_referral_var()] : '';
    // if affiliate ID is set in query string make sure they're actually an affiliate
    if (isset($ref_var) && affwp_is_affiliate(affwp_get_affiliate_user_id($ref_var))) {
        $affiliate_id = $ref_var;
    } elseif (affiliate_wp()->tracking->get_affiliate_id()) {
        $affiliate_id = affiliate_wp()->tracking->get_affiliate_id();
    } else {
        $affiliate_id = '';
    }
    // built out the image based on the image path of the affiliate
    return '<img src="' . affwp_affiliate_banners_get_image($affiliate_id) . '" />';
}
/**
 * Plugin Name: AffiliateWP - Custom Admin Registration Email
 * Plugin URI: http://affiliatewp.com
 * Description: Adds the Affiliate's Email and Affiliate ID to the admin registration email
 * Author: Andrew Munro
 * Author URI: http://affiliatewp.com
 * Version: 1.0
 */
function affwp_custom_registration_email($message, $args)
{
    $user_info = get_userdata(affwp_get_affiliate_user_id($args['affiliate_id']));
    $user_url = $user_info->user_url;
    $promotion_method = get_user_meta(affwp_get_affiliate_user_id($args['affiliate_id']), 'affwp_promotion_method', true);
    $message = "A new affiliate has registered on your site, " . home_url() . "\n\n";
    $message .= sprintf(__('Name: %s', 'affiliate-wp'), $args['name']) . "\n\n";
    // Affiliate's Email Address
    $message .= sprintf(__('Email: %s', 'affiliate-wp'), affwp_get_affiliate_email($args['affiliate_id'])) . "\n\n";
    // Affiliate's ID
    $message .= sprintf(__('Affiliate ID: %s', 'affiliate-wp'), $args['affiliate_id']) . "\n\n";
    if ($user_url) {
        $message .= __('Website URL: ', 'affiliate-wp') . esc_url($user_url) . "\n\n";
    }
    if ($promotion_method) {
        $message .= __('Promotion method: ', 'affiliate-wp') . esc_attr($promotion_method) . "\n\n";
    }
    if (affiliate_wp()->settings->get('require_approval')) {
        $message .= sprintf("Review pending applications: %s\n\n", admin_url('admin.php?page=affiliate-wp-affiliates&status=pending'));
    }
    return $message;
}
Example #5
0
/**
 * Send email on new referrals
 *
 * @since 1.6
 * @param int $affiliate_id The ID of the registered affiliate
 * @param array $referral
 */
function affwp_notify_on_new_referral($affiliate_id = 0, $referral)
{
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    if (!get_user_meta($user_id, 'affwp_referral_notifications', true)) {
        return;
    }
    if (empty($affiliate_id)) {
        return;
    }
    if (empty($referral)) {
        return;
    }
    $emails = new Affiliate_WP_Emails();
    $emails->__set('affiliate_id', $affiliate_id);
    $emails->__set('referral', $referral);
    $email = affwp_get_affiliate_email($affiliate_id);
    $subject = affiliate_wp()->settings->get('referral_subject', __('Referral Awarded!', 'affiliate-wp'));
    $message = affiliate_wp()->settings->get('referral_email', false);
    $amount = html_entity_decode(affwp_currency_filter($referral->amount), ENT_COMPAT, 'UTF-8');
    if (!$message) {
        $message = sprintf(__('Congratulations %s!', 'affiliate-wp'), affiliate_wp()->affiliates->get_affiliate_name($affiliate_id)) . "\n\n";
        $message .= sprintf(__('You have been awarded a new referral of %s on %s!', 'affiliate-wp'), $amount, home_url()) . "\n\n";
        $message .= sprintf(__('log into your affiliate area to view your earnings or disable these notifications: %s', 'affiliate-wp'), affiliate_wp()->login->get_login_url()) . "\n\n";
    }
    // $args is setup for backwards compatibility with < 1.6
    $args = array('affiliate_id' => $affiliate_id, 'amount' => $referral->amount, 'referral' => $referral);
    $subject = apply_filters('affwp_new_referral_subject', $subject, $args);
    $message = apply_filters('affwp_new_referral_email', $message, $args);
    if (apply_filters('affwp_notify_on_new_referral', true, $referral)) {
        $emails->send($email, $subject, $message);
    }
}
Example #6
0
/**
 * Get the referral format value
 *
 * @since 1.6
 * @param string $format referral format passed in via [affiliate_referral_url] shortcode
 * @return string affiliate ID or username
 */
function affwp_get_referral_format_value($format = '', $affiliate_id = 0)
{
    // get affiliate's user ID
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    if (!$format) {
        $format = affwp_get_referral_format();
    }
    switch ($format) {
        case 'username':
            $value = urlencode(affwp_get_affiliate_username($affiliate_id));
            break;
        case 'id':
        default:
            $value = affwp_get_affiliate_id($user_id);
            break;
    }
    return apply_filters('affwp_get_referral_format_value', $value, $format, $affiliate_id);
}
 /**
  * Get the affiliate's gravatar
  *
  * @since 1.0.0
  */
 public function get_affiliate_gravatar()
 {
     $affiliate_id = $this->get_affiliate_id();
     if ($affiliate_id) {
         $args = apply_filters('affwp_affiliate_info_gravatar_defaults', array('size' => 96, 'default' => '', 'alt' => $this->get_affiliate_name()));
         $email = affwp_get_affiliate_email($affiliate_id);
         return get_avatar(affwp_get_affiliate_user_id($affiliate_id), $args['size'], $args['default'], $args['alt']);
     }
     return false;
 }
 /**
  * Referral Payout
  * @since 1.6
  * @version 1.0
  */
 public function referral_payouts($referral_id, $new_status, $old_status)
 {
     // If the referral id isn't valid
     if (!is_numeric($referral_id)) {
         return;
     }
     // Get the referral object
     $referral = affwp_get_referral($referral_id);
     // Get the user id
     $user_id = affwp_get_affiliate_user_id($referral->affiliate_id);
     if (array_key_exists($currency, $this->point_types) && $this->prefs['referrals']['pay'] == 'store') {
         $amount = $referral->amount;
     } elseif ($this->prefs['referrals']['pay'] == 'amount') {
         $amount = $this->prefs['referrals']['creds'];
     } else {
         $amount = $this->core->number($referral->amount / $this->prefs['referrals']['creds']);
     }
     $amount = apply_filters('mycred_affiliatewp_payout', $amount, $referral, $new_status, $old_status, $this);
     if ('paid' === $new_status) {
         $this->core->add_creds('affiliate_referral', $user_id, $amount, $this->prefs['referrals']['log'], $referral_id, array('ref_type' => 'post'), $this->mycred_type);
     } elseif ('paid' === $old_status && 'unpaid' === $new_status) {
         $this->core->add_creds('affiliate_referral_refund', $user_id, 0 - $amount, $this->prefs['referrals']['remove_log'], $referral_id, array('ref_type' => 'post'), $this->mycred_type);
     }
 }
Example #9
0
    /**
     * Shows the affiliate drop down on the discount edit / add screens
     *
     * @access  public
     * @since   1.1
     */
    public function discount_edit($discount_id = 0)
    {
        global $wpdb;
        add_filter('affwp_is_admin_page', '__return_true');
        affwp_admin_scripts();
        $affiliate_id = $wpdb->get_var($wpdb->prepare("SELECT meta_value FROM {$wpdb->usermeta} WHERE meta_key = %s", 'affwp_discount_rcp_' . $discount_id));
        $user_id = affwp_get_affiliate_user_id($affiliate_id);
        $user = get_userdata($user_id);
        $user_name = $user ? $user->user_login : '';
        ?>
		<table class="form-table">
			<tbody>
				<tr class="form-field">
					<th scope="row" valign="top">
						<label for="affiliate_id"><?php 
        _e('Affiliate Discount?', 'affiliate-wp');
        ?>
</label>
					</th>
					<td>
						<span class="affwp-ajax-search-wrap">
							<input type="hidden" name="user_id" id="user_id" value="<?php 
        echo esc_attr($user_id);
        ?>
" />
							<input type="text" name="user_name" id="user_name" value="<?php 
        echo esc_attr($user_name);
        ?>
" class="affwp-user-search" data-affwp-status="active" autocomplete="off" style="width: 300px;" />
							<img class="affwp-ajax waiting" src="<?php 
        echo admin_url('images/wpspin_light.gif');
        ?>
" style="display: none;"/>
						</span>
						<div id="affwp_user_search_results"></div>
						<p class="description"><?php 
        _e('If you would like to connect this discount to an affiliate, enter the name of the affiliate it belongs to.', 'affiliate-wp');
        ?>
</p>
					</td>
				</tr>
			</tbody>
		</table>
<?php 
    }
/**
 * Updates an affiliate's profile settings
 *
 * @since 1.0
 * @return bool
 */
function affwp_update_profile_settings($data = array())
{
    if (!is_user_logged_in()) {
        return false;
    }
    if (empty($data['affiliate_id'])) {
        return false;
    }
    if (affwp_get_affiliate_id() != $data['affiliate_id'] && !current_user_can('manage_affiliates')) {
        return false;
    }
    $affiliate_id = absint($data['affiliate_id']);
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    if (!empty($data['referral_notifications'])) {
        update_user_meta($user_id, 'affwp_referral_notifications', '1');
    } else {
        delete_user_meta($user_id, 'affwp_referral_notifications');
    }
    if (!empty($data['payment_email']) && is_email($data['payment_email'])) {
        affiliate_wp()->affiliates->update($affiliate_id, array('payment_email' => $data['payment_email']), '', 'affiliate');
    }
    do_action('affwp_update_affiliate_profile_settings', $data);
    if (!empty($_POST['affwp_action'])) {
        wp_redirect(add_query_arg('affwp_notice', 'profile-updated'));
        exit;
    }
}
 /**
  * Save affiliate details in admin backend.
  */
 public function process_update_affiliate()
 {
     $data = array_map('esc_attr', $_POST);
     $user_id = affwp_get_affiliate_user_id(absint($_GET['affiliate_id']));
     $bank_details = array('bank_name' => $data['bank_name'], 'account_name' => $data['account_name'], 'account_number' => $data['account_number'], 'phone_number' => $data['phone_number']);
     update_user_meta($user_id, 'affwp_bank_details', $bank_details);
 }
 function test_get_affiliate_user_id()
 {
     $this->assertEquals($this->_user_id, affwp_get_affiliate_user_id($this->_affiliate_id));
 }
/**
 * Plugin Name: AffiliateWP - Auto Enable Affiliate Referral Notifications
 * Plugin URI: http://affiliatewp.com
 * Description: Auto enables the "Enable New Referral Notifications" checkbox on the "Settings" tab of the affiliate area when an affiliate is added
 * Author: Andrew Munro
 * Author URI: http://affiliatewp.com
 * Version: 1.0
 */
function affwp_custom_auto_enable_affiliate_referral_notifications($add)
{
    update_user_meta(affwp_get_affiliate_user_id($add), 'affwp_referral_notifications', true);
}
Example #14
0
function after_referral_completed($referral_id, $new_status, $old_status)
{
    if ('paid' == $new_status) {
        $referral = affiliate_wp()->referrals->get_by('referral_id', $referral_id);
        $affiliate_id = $referral->affiliate_id;
        $user_id = affwp_get_affiliate_user_id($affiliate_id);
        $points = get_user_meta($user_id, 'loyalty_points', true) + 1;
        update_user_meta($user_id, 'loyalty_points', $points);
    }
}
/**
 * Plugin Name: AffiliateWP - Affiliate role on registration
 * Plugin URI: http://affiliatewp.com
 * Description: Sets an affiliate user's role to a specific role when being added as an affiliate
 * Author: Pippin Williamson
 * Author URI: http://pippinsplugins.com
 * Version: 1.0
 */
function pw_affwp_set_role_on_registration($affiliate_id = 0)
{
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    $user = new WP_User($user_id);
    $user->add_role('affiliate');
}
" />
		</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));
?>
/>
			<label for="affwp-referral-notifications"><?php 
_e('Enable New Referral Notifications', 'affiliate-wp');
?>
</label>
		</div>

		<?php 
do_action('affwp_affiliate_dashboard_before_submit', $affiliate_id, affwp_get_affiliate_user_id($affiliate_id));
?>

		<div class="affwp-save-profile-wrap">
			<input type="hidden" name="affwp_action" value="update_profile_settings" />
			<input type="hidden" name="affiliate_id" value="<?php 
echo absint($affiliate_id);
?>
" />
			<input type="submit" class="button" value="<?php 
esc_attr_e('Save Profile Settings', 'affiliate-wp');
?>
" />
		</div>

	</form>
    /**
     * Shows the affiliate drop down on the discount edit / add screens
     *
     * @access  public
     * @since   1.1
     */
    public function coupon_option()
    {
        global $post;
        add_filter('affwp_is_admin_page', '__return_true');
        affwp_admin_scripts();
        $affiliate_id = get_post_meta($post->ID, 'affwp_discount_affiliate', true);
        $user_id = affwp_get_affiliate_user_id($affiliate_id);
        $user = get_userdata($user_id);
        $user_name = $user ? $user->user_login : '';
        ?>
		<p class="form-field affwp-woo-coupon-field">
			<label for="user_name"><?php 
        _e('Affiliate Discount?', 'affiliate-wp');
        ?>
</label>
			<span class="affwp-ajax-search-wrap">
				<span class="affwp-woo-coupon-input-wrap">
					<input type="hidden" name="user_id" id="user_id" value="<?php 
        echo esc_attr($user_id);
        ?>
" />
					<input type="text" name="user_name" id="user_name" value="<?php 
        echo esc_attr($user_name);
        ?>
" class="affwp-user-search" data-affwp-status="active" autocomplete="off" />
					<img class="affwp-ajax waiting" src="<?php 
        echo admin_url('images/wpspin_light.gif');
        ?>
" style="display: none;"/>
				</span>
				<span id="affwp_user_search_results"></span>
				<img class="help_tip" data-tip='<?php 
        _e('If you would like to connect this discount to an affiliate, enter the name of the affiliate it belongs to.', 'affiliate-wp');
        ?>
' src="<?php 
        echo WC()->plugin_url();
        ?>
/assets/images/help.png" height="16" width="16" />
			</span>
		</p>
<?php 
    }
Example #18
0
    /**
     * Shows the affiliate drop down on the coupon edit / add screens
     *
     * @access  public
     * @since   1.3
     */
    public function coupon_edit($form)
    {
        add_filter('affwp_is_admin_page', '__return_true');
        affwp_admin_scripts();
        $coupon_id = !empty($_REQUEST['post']) ? absint($_REQUEST['post']) : 0;
        $affiliate_id = get_post_meta($coupon_id, 'affwp_coupon_affiliate', true);
        $user_id = affwp_get_affiliate_user_id($affiliate_id);
        $user = get_userdata($user_id);
        $user_name = $user ? $user->user_login : '';
        ?>
		<div class="field affwp-coupon">
			<th scope="row" valign="top">
				<label for="user_name"><?php 
        _e('Affiliate coupon?', 'affiliate-wp');
        ?>
</label>
			</th>
			<td>
				<span class="affwp-ajax-search-wrap">
					<input type="hidden" name="user_id" id="user_id" value="<?php 
        echo esc_attr($user_id);
        ?>
" />
					<input type="text" name="user_name" id="user_name" value="<?php 
        echo esc_attr($user_name);
        ?>
" class="affwp-user-search" data-affwp-status="active" autocomplete="off" />
					<img class="affwp-ajax waiting" src="<?php 
        echo admin_url('images/wpspin_light.gif');
        ?>
" style="display: none;"/>
				</span>
				<div id="affwp_user_search_results"></div>
				<p class="description"><?php 
        _e('If you would like to connect this coupon to an affiliate, enter the name of the affiliate it belongs to.', 'affiliate-wp');
        ?>
</p>
			</td>
		</div>
<?php 
    }
/**
 * Get the referral format value
 *
 * @since 1.6
 * @param string $format referral format passed in via [affiliate_referral_url] shortcode
 * @return string affiliate ID or username
 */
function affwp_get_referral_format_value($format = '', $affiliate_id = 0)
{
    // get affiliate's user ID
    $user_id = affwp_get_affiliate_user_id($affiliate_id);
    if (!$format) {
        $format = affwp_get_referral_format();
    }
    switch ($format) {
        case 'username':
            $value = affwp_get_affiliate_username($affiliate_id);
            break;
        case 'id':
        default:
            $value = affwp_get_affiliate_id($user_id);
            break;
    }
    return $value;
}
Example #20
0
/**
 * Email template tag: promo_method
 * The affiliate promo method
 *
 * @param int $affiliate_id
 * @return string promo_method
 */
function affwp_email_tag_promo_method($affiliate_id = 0)
{
    return get_user_meta(affwp_get_affiliate_user_id($affiliate_id), 'affwp_promotion_method', true);
}
<?php

$user_id = affwp_get_affiliate_user_id($user);
$user_credit_balance = get_user_meta($user_id, 'affwp_wc_credit_balance', true);
if (empty($user_credit_balance)) {
    $user_credit_balance = 0;
}
?>

<table class="affwp-table">
	<thead>
	<tr>
		<th><?php 
_e('Store Credits', 'affwp-scd');
?>
</th>
	</tr>
	</thead>
	<tbody>
	<tr>
		<td><?php 
echo affwp_currency_filter($user_credit_balance);
?>
</td>
	</tr>
	</tbody>
</table>
Example #22
0
    /**
     * Shows the affiliate drop down on the discount edit / add screens
     *
     * @access  public
     * @since   1.7.5
     */
    public function coupon_option($edit)
    {
        global $wpdb;
        add_filter('affwp_is_admin_page', '__return_true');
        affwp_admin_scripts();
        $user_id = 0;
        $user_name = '';
        if ($edit > 0) {
            $table = $wpdb->prefix . 'affiliate_wp_affiliatemeta';
            $affiliate_id = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$table} WHERE meta_key = %s", 'affwp_discount_pmp_' . $edit));
        } else {
            $affiliate_id = false;
        }
        if ($affiliate_id) {
            $user_id = affwp_get_affiliate_user_id($affiliate_id);
            $user = get_userdata($user_id);
            $user_name = $user ? $user->user_login : '';
        }
        ?>
		<table class="form-table">
			<tbody>
				<tr>
					<th scope="row" valign="top"><label for="user_name"><?php 
        _e('Affiliate Discount?', 'affiliate-wp');
        ?>
</label></th>
					<td class="form-field affwp-pmp-coupon-field">
						<span class="affwp-ajax-search-wrap">
							<span class="affwp-pmp-coupon-input-wrap">
								<input type="hidden" name="user_id" id="user_id" value="<?php 
        echo esc_attr($user_id);
        ?>
" />
								<input type="text" name="user_name" id="user_name" value="<?php 
        echo esc_attr($user_name);
        ?>
" class="affwp-user-search" data-affwp-status="active" autocomplete="off" style="width:150px" />
								<img class="affwp-ajax waiting" src="<?php 
        echo admin_url('images/wpspin_light.gif');
        ?>
" style="display: none;"/>
							</span>
							<span id="affwp_user_search_results"></span>
							<small class="pmpro_lite"><?php 
        _e('If you would like to connect this discount to an affiliate, enter the name of the affiliate it belongs to.', 'affiliate-wp');
        ?>
</small>
						</span>
						<?php 
        wp_nonce_field('affwp_pmp_coupon_nonce', 'affwp_pmp_coupon_nonce');
        ?>
					</td>
				</tr>
			</tbody>
		</table>
		<?php 
    }
" />
		</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(affwp_get_affiliate_id()), 'affwp_referral_notifications', true));
?>
/>
			<label for="affwp-referral-notifications"><?php 
_e('Enable New Referral Notifications', 'affiliate-wp');
?>
</label>
		</div>

		<?php 
do_action('affwp_affiliate_dashboard_before_submit', affwp_get_affiliate_id(), affwp_get_affiliate_user_id(affwp_get_affiliate_id()));
?>

		<div class="affwp-save-profile-wrap">
			<input type="hidden" name="affwp_action" value="update_profile_settings" />
			<input type="hidden" name="affiliate_id" value="<?php 
echo esc_attr(affwp_get_affiliate_id());
?>
" />
			<input type="submit" class="button" value="<?php 
esc_attr_e('Save Profile Settings', 'affiliate-wp');
?>
" />
		</div>
	</form>
</div>