Esempio n. 1
0
 function test_set_affiliate_status()
 {
     $this->assertEquals('active', affwp_get_affiliate_status($this->_affiliate_id));
     $this->assertTrue(affwp_set_affiliate_status($this->_affiliate_id, 'inactive'));
     $this->assertEquals('inactive', affwp_get_affiliate_status($this->_affiliate_id));
     $this->assertTrue(affwp_set_affiliate_status($this->_affiliate_id, 'pending'));
     $this->assertEquals('pending', affwp_get_affiliate_status($this->_affiliate_id));
     $this->assertTrue(affwp_set_affiliate_status($this->_affiliate_id, 'rejected'));
     $this->assertEquals('rejected', affwp_get_affiliate_status($this->_affiliate_id));
     $this->assertTrue(affwp_set_affiliate_status($this->_affiliate_id, 'active'));
     $this->assertEquals('active', affwp_get_affiliate_status($this->_affiliate_id));
 }
Esempio n. 2
0
 /**
  * Process the bulk actions
  *
  * @access public
  * @since 1.0
  * @return void
  */
 public function process_bulk_action()
 {
     if (empty($_REQUEST['_wpnonce'])) {
         return;
     }
     if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'bulk-affiliates') && !wp_verify_nonce($_REQUEST['_wpnonce'], 'affiliate-nonce')) {
         return;
     }
     $ids = isset($_GET['affiliate_id']) ? $_GET['affiliate_id'] : false;
     if (!is_array($ids)) {
         $ids = array($ids);
     }
     $ids = array_map('absint', $ids);
     if (empty($ids)) {
         return;
     }
     foreach ($ids as $id) {
         if ('accept' === $this->current_action()) {
             affwp_set_affiliate_status($id, 'active');
         }
         if ('reject' === $this->current_action()) {
             affwp_set_affiliate_status($id, 'rejected');
         }
         if ('activate' === $this->current_action()) {
             affwp_set_affiliate_status($id, 'active');
         }
         if ('deactivate' === $this->current_action()) {
             affwp_set_affiliate_status($id, 'inactive');
         }
     }
 }
/**
 * Adds a new affiliate to the database
 *
 * @since 1.0
 * @return bool
 */
function affwp_add_affiliate($data = array())
{
    if (!empty($data['status'])) {
        $status = $data['status'];
    } elseif (affiliate_wp()->settings->get('require_approval')) {
        $status = 'pending';
    } else {
        $status = 'active';
    }
    if (empty($data['user_id'])) {
        return false;
    }
    $user_id = absint($data['user_id']);
    if (!affiliate_wp()->affiliates->get_by('user_id', $user_id)) {
        $args = array('user_id' => $user_id, 'status' => $status, 'rate' => !empty($data['rate']) ? sanitize_text_field($data['rate']) : '', 'rate_type' => !empty($data['rate_type']) ? sanitize_text_field($data['rate_type']) : '', 'payment_email' => !empty($data['payment_email']) ? sanitize_text_field($data['payment_email']) : '');
        $affiliate_id = affiliate_wp()->affiliates->add($args);
        if ($affiliate_id) {
            affwp_set_affiliate_status($affiliate_id, $status);
            return $affiliate_id;
        }
    }
    return false;
}
Esempio n. 4
0
/**
 * Process the affiliate moderation request
 *
 * @since 1.7
 * @return void
 */
function affwp_process_affiliate_moderation($data)
{
    if (empty($data['affiliate_id'])) {
        return false;
    }
    if (!is_admin()) {
        return false;
    }
    if (!current_user_can('manage_affiliates')) {
        wp_die(__('You do not have permission to manage affiliates', 'affiliate-wp'), __('Error', 'affiliate-wp'), array('response' => 403));
    }
    if (!wp_verify_nonce($data['affwp_moderate_affiliates_nonce'], 'affwp_moderate_affiliates_nonce')) {
        wp_die(__('Security check failed', 'affiliate-wp'), __('Error', 'affiliate-wp'), array('response' => 403));
    }
    $status = isset($data['affwp_accept']) ? 'active' : 'rejected';
    $notice = isset($data['affwp_accept']) ? 'affiliate_accepted' : 'affiliate_rejected';
    if ('rejected' == $status) {
        $reason = !empty($data['affwp_rejection_reason']) ? wp_kses_post($data['affwp_rejection_reason']) : false;
        if ($reason) {
            affwp_add_affiliate_meta($data['affiliate_id'], '_rejection_reason', $reason, true);
        }
    }
    if (affwp_set_affiliate_status($data['affiliate_id'], $status)) {
        wp_safe_redirect(admin_url('admin.php?page=affiliate-wp-affiliates&affwp_notice=' . $notice . '&affiliate_id=' . $data['affiliate_id']));
        exit;
    } else {
        wp_safe_redirect(admin_url('admin.php?page=affiliate-wp-affiliates&affwp_notice=affiliate_update_failed'));
        exit;
    }
}