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