コード例 #1
0
function bbps_envato_notify_purchase_code()
{
    if (get_option('_bbps_envato_username', '') && get_option('_bbps_envato_api_key', '') && is_user_logged_in()) {
        $user_id = get_current_user_id();
        if ($user_id) {
            $envato_codes = get_user_meta($user_id, 'envato_codes', true);
            if (!$envato_codes) {
                $envato_codes = array();
            }
            if (isset($_POST['user_purchase_code']) && strlen($_POST['user_purchase_code']) > 5) {
                $purchase_code = strtolower(trim($_POST['user_purchase_code']));
                $api_result = verify_purchase($purchase_code);
                if (is_array($api_result)) {
                    $envato_codes[$purchase_code] = $api_result;
                    update_user_meta($user_id, 'envato_codes', $envato_codes);
                    ?>
					<div class="alert alert-info" role="alert">
						Thank you <strong><?php 
                    echo $api_result['buyer'];
                    ?>
</strong>! <br/>
						You have verified your purchase of <em><?php 
                    echo $api_result['item_name'];
                    ?>
</em> from <em><?php 
                    echo $api_result['created_at'];
                    ?>
</em>. <br/>
						You can verify additional purchases from your <a href="<?php 
                    bbp_user_profile_edit_url($user_id);
                    ?>
">profile page</a>.
					</div>
					<?php 
                } else {
                    if ($api_result === 0) {
                        ?>
					<div class="alert alert-error" role="alert">Sorry a temporary error occurred while processing your license code request.</div>
					<?php 
                    } else {
                        ?>
					<div class="alert alert-error" role="alert">Sorry this license code is not valid. Please send through an email support request for assistance.</div>
					<?php 
                    }
                }
            }
            if (!$envato_codes) {
                ?>
				<div class="alert alert-info" role="alert">
					<div style="padding-bottom: 10px">
						<strong>Notice:</strong> To continue posting on the Support Forum please enter your Item Purchase Code below. This helps us verify buyers and provide a better level of service. Please <a href="//dtbaker.net/admin/includes/plugin_envato/images/envato-license-code.gif" target="_blank">click here</a> for help finding your purchase code.
					</div>
					<form name="envato_purchase_code" id="envato_purchase_code" action="" method="post">
	                    <div class="form-group">
	                        <input type="text" class="form-control" name="user_purchase_code" id="register_widget_purchase_code" placeholder="Please paste your purchase code here">
	                      </div>
						<button type="submit" class="btn btn-default">Submit Purchase Code</button>
					</form>

				</div>
				<?php 
            }
        }
    }
}
コード例 #2
0
 /**
  * Checks post data and registers user
  * @return string
  */
 function register()
 {
     if (!empty($_REQUEST['register_ajax_widget'])) {
         $return = array();
         //			$return['result'] = false;
         //			$return['error'] = "Forum registration temporarily closed, please try again later";
         if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_REQUEST['user_login']) && !empty($_REQUEST['user_email'])) {
             //require_once( ABSPATH . WPINC . '/registration.php');
             // check purchase code.
             $valid_purchase_codes = false;
             if (!isset($return['result']) && get_option('_bbps_envato_username', '') && get_option('_bbps_envato_api_key', '')) {
                 $purchase_code = isset($_REQUEST['user_purchase_code']) ? strtolower(trim($_REQUEST['user_purchase_code'])) : false;
                 if (strlen($purchase_code) > 10) {
                     $api_result = verify_purchase($purchase_code);
                     if (is_array($api_result)) {
                         $valid_purchase_codes = array();
                         $valid_purchase_codes[$purchase_code] = $api_result;
                     }
                 }
                 if (!$valid_purchase_codes) {
                     $return['result'] = false;
                     $return['error'] = "Incorrect Item Purchase code, please make sure it is copied correctly.";
                 }
             }
             if (!isset($return['result']) && get_option('_bbps_recaptcha_client', '') && get_option('_bbps_recaptcha_secret', '')) {
                 // recaptcha time!
                 $ch = curl_init("https://www.google.com/recaptcha/api/siteverify");
                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                 curl_setopt($ch, CURLOPT_HEADER, false);
                 curl_setopt($ch, CURLOPT_POST, true);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, array("secret" => get_option('_bbps_recaptcha_secret', ''), "response" => isset($_REQUEST['g-recaptcha-response']) ? $_REQUEST['g-recaptcha-response'] : false, 'remoteip' => $_SERVER['REMOTE_ADDR']));
                 $data = curl_exec($ch);
                 $google_result = @json_decode($data, true);
                 if (!$google_result || !$google_result['success']) {
                     $return['result'] = false;
                     $return['message'] = var_export($google_result, true);
                 }
             }
             if (!isset($return['result'])) {
                 $errors = register_new_user($_POST['user_login'], $_POST['user_email']);
                 if (!is_wp_error($errors)) {
                     //Success
                     $user_data = get_userdata($errors);
                     if (is_array($valid_purchase_codes) && count($valid_purchase_codes)) {
                         update_user_meta($user_data->ID, 'envato_codes', $valid_purchase_codes);
                     }
                     $return['result'] = true;
                     $return['message'] = __(sprintf('Thank you %s. Registration is complete. Please check your e-mail.', $user_data->user_login));
                 } else {
                     //Something's wrong
                     $return['result'] = false;
                     $return['error'] = $errors->get_error_message() . "<br>Username: "******"/^jQuery[_a-zA-Z0-9]+\$/", $_REQUEST['callback'])) {
             $return = $_GET['callback'] . "({$return})";
         }
         echo $return;
         exit;
     }
 }