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