diff --git a/css/workspace.css b/css/workspace.css index 5daf7c9..938bd21 100644 --- a/css/workspace.css +++ b/css/workspace.css @@ -47,7 +47,7 @@ table.details td.left, table.details th.left { } textarea.addr{ padding-top:15px; - min-height: 100px; + min-height: 150px; font-weight: bold; color: blue; resize: none; @@ -107,4 +107,13 @@ textarea.addr{ .tt-suggestion p { margin: 0; } + +#pickupcontact, #pickupwechat, #pickuptime { +margin-left: 10px; + margin-right: 10px; + border: none; + color: blue; + font-weight: bold; + text-align: center; +} \ No newline at end of file diff --git a/html/medal_received.html b/html/medal_received.html new file mode 100644 index 0000000..991f4b6 --- /dev/null +++ b/html/medal_received.html @@ -0,0 +1,10 @@ +
+ #NAME# 纪念章签收+ |
|
+ |
|
Postal Address - | ||
| State in Australia | - | @@ -57,9 +57,9 @@|
| Delivery: |
- N/A - Direct Post - Pick up from Patrick Sun + N/A + Direct Post + Pick up from |
|
|
- |
- |
|
| - 2020-12-10 + | + | - Send out from Sydney + Posted |
| - 2020-12-10 + | - Send out from Sydney + Received by : | |
| - 2020-12-10 + | - Send out from Sydney + Ready for Pickup | |
| + + | ++ Delivered + | +|
| + Pickup Phone: + + | +||
| + Pickup Wechat: + + | +||
|
+ Pickup Location:
+ |
+ ||
| + Pickup time: + + | +||
diff --git a/js/workspace.js b/js/workspace.js
index 25e6339..e079a41 100644
--- a/js/workspace.js
+++ b/js/workspace.js
@@ -27,8 +27,9 @@
$("#loading90").attr('src', mm.loading);
$("#done").attr('src', mm.done);
- $(':radio:not(:checked)').attr('disabled', true);
+
+ $("span.collector").text("Pactrick");
init_clientname_input("#username");
});
@@ -51,6 +52,9 @@
function onUpdateClientID (e, suggestion)
{
mm.current_user = suggestion.userid;
+
+ $('#details').hide();
+
$.post(mm.ajax_url, { // POST request
_ajax_nonce: mm.nonce, // nonce
action: "list_users", // action
@@ -120,7 +124,6 @@
_ajax_nonce: mm.nonce, // nonce
action: "list_users", // action
client : mm.current_user,
- name : input,
}, function(response, status, xhr){
step2_verify_user(response);
}).fail(function(){
@@ -174,6 +177,42 @@
$("#errVerify").text("Incorrect, please try again");
}
+ $("#postaladdr").val(response.addr);
+ $("#states").val(response.state);
+ $("span.collector").text(response.pickup);
+ $("#pickupcontact").val(response.pp);
+ $("#pickupwechat").val(response.ppwechat);
+ $("#pickuplocation").val(response.loc);
+ $("#pickuptime").val(response.time);
+
+
+ $(':radio:not(:checked)').attr('disabled', false);
+ $(':radio:checked').attr('disabled', false);
+ //set delivery
+ switch(response.delivery)
+ {
+ case 'pp':
+ $('input:radio[name=delivery]:nth(2)').prop('checked',true);
+ $('tr.pp').show();
+ break;
+ case 'dp':
+ $('tr.pp').hide();
+ $('input:radio[name=delivery]:nth(1)').prop('checked',true);
+ break;
+ default:
+ $('tr.pp').hide();
+ $('input:radio[name=delivery]:nth(0)').prop('checked',true);
+ }
+ $(':radio:not(:checked)').attr('disabled', true);
+ $(':radio:checked').attr('disabled', false);
+
+ //steps
+ $("#medal").prop("checked", response.step >= 1);
+ $("#posted").prop("checked", response.step >= 2);
+ $("#received").prop("checked", response.step >= 3);
+ $("#readyforpickup").prop("checked", response.step >= 4);
+ $("#delivered").prop("checked", response.step >= 5);
+
}
//apply card
diff --git a/member.php b/member.php
index ceb9116..d139cee 100644
--- a/member.php
+++ b/member.php
@@ -12,6 +12,8 @@
Copyright: All rights reserved.
*/
namespace Member;
+use function Nextgenthemes\ARVE\Common\Admin\label_text;
+
//require_once(dirname(__FILE__) . '/autoload.php');
require_once (ABSPATH . 'wp-includes/pluggable.php');
@@ -61,8 +63,17 @@ class Member{
public function shortcode_token($attrs) {
$token = get_query_var( 'token' );
+ if (trim($token) == "")
+ return "";
+
$user = $this->getUserByToken($token);
- return "ok ok " . $user[0]->display_name . ""; + update_user_meta($user->ID, "hit100collected", "5"); + + $subject = file_get_contents(plugin_dir_path(__FILE__) . "/html/medal_received.html"); + $subject = str_replace("#NAME#", $user->display_name, $subject); + $result = str_replace("#SRC#", plugins_url('img/done.gif', __FILE__), $subject); + return $result; + } @@ -108,13 +119,14 @@ class Member{ 'search_user' => plugins_url('img/loading_user.gif', __FILE__), 'anonymous' => !is_user_logged_in(), 'user' => $this->getUserByToken($this->token), + 'imgurl' => plugins_url('img/box/', __FILE__), ) ); } function ajax_list_users() { - //check_ajax_referer('medal'); + check_ajax_referer('medal'); $client = $_POST['client']; $name = $_POST['name']; @@ -161,13 +173,14 @@ class Member{ public function ajax_search_users() { - //check_ajax_referer('medal'); + check_ajax_referer('medal'); $pattern = $_GET['pattern']; $args= array( 'search' => "*$pattern*", // or login or nicename in this example 'search_fields' => array('display_name'), + 'role__in' => array('subscriber') ); $users = new \WP_User_Query($args); @@ -190,7 +203,7 @@ class Member{ public function ajax_verify_user() { - //check_ajax_referer('medal'); + check_ajax_referer('medal'); $client = $_POST['client']; $verifycode = $_POST['verifycode']; @@ -206,17 +219,127 @@ class Member{ wp_send_json($response); } - + $pickup = $this->get_pickup($user); $response = array( 'status' => 'success', 'userID' => $user->ID, 'pass' => $this->verify_code($method, $verifycode, $user), + 'addr' => $this->getUserPostalAddress($user), + 'state' =>$this->getUserState($user), + 'delivery'=> $this->get_delivery($this->getUserState($user)), + 'pickup' => $pickup["name"], + 'pp' => $pickup["phone"], + 'ppwechat'=>$pickup["wechat"], + 'loc' =>$pickup["loc"], + 'time' =>$pickup["time"], + 'step' => get_user_meta($client, "hit100collected", true), ); + wp_send_json($response); + } + + private function get_delivery($state) + { + switch ($state){ + case "na": + return "na"; //not available + case "NT": + case "TAS": + case "ACT": + case "SA": + return "dp"; //direct post + case "NSW": + case "VIC": + case "QLD": + case "WA": + return "pp"; + } + } + + private function get_pickup($user) + { + $state = $this->getUserState($user); - + switch ($state){ + case "na": + case "NT": + case "TAS": + case "ACT": + case "SA": + return array( + "name" => "n/a", + "phone"=>"n/a", + "wechat" =>"n/a", + "loc" => "n/a", + "time" => "n/a", + + ); + case "NSW": + return array( + "name" => "孙鹏", + "phone" => "0422896020", + "wechat" => "lawipac", + "loc" => "2020-12-13 15:30 - 18:00 : QVB Level 2 Coffee Shop, Sydney.\n" . + "2020-12-15 17:00 - 18:00 : Strathfield Station Exit (Square). \n" . + "2020-12-19 15:30 - 18:00 : Central Station Main Exit", + "time" => "2020-12-13 ~ 19", + + ); + + case "VIC": + return array( + "name" => "杨欧", + "phone" => "0450673987", + "wechat" => "yangou627478", + "loc" => "n/a", + "time" => "n/a", + + ); + + case "QLD": + return array( + "name" => "于启华", + "phone" => "0405928939", + "wechat" => "cloudfisher321", + "loc" => "n/a", + "time" => "n/a", + + ); + case "WA": + return array( + "name" => "赵健 (Perth-15-外语)", + "phone" => "0452008130", + "wechat" => "Shmilyxiaorenyu", + "loc" => "n/a", + "time" => "n/a", + + ); + } + } + + private function getUserPostalAddress($user) + { + $addr = get_user_meta($user->ID, 'postal-address', true); + if ( $addr == "" ) + return "No valid address provided"; + else{ + return str_replace("," , "\r\n", $addr); + } + } + + private function getUserState($user) + { + $valid = array("NSW", "VIC", "TAS", "NT", "WA", "SA", "ACT", "QLD"); + $s = get_user_meta($user->ID, 'state', true); + $s = strtoupper($s); + + if (in_array($s, $valid) ) + { + return $s; + }else { + return "na"; + } - wp_send_json($response); } private function verify_code($method, $verifycode, $user) @@ -255,7 +378,7 @@ class Member{ 'meta_key' => 'token', 'meta_value' => "$token" )); - return $user; + return $user[0]; } @@ -264,11 +387,12 @@ class Member{ public function test() { - $this->ajax_list_users(); + //$this->ajax_list_users(); } public function house_keeping() { + return; $args= array( 'search' => "**", // or login or nicename in this example 'search_fields' => array('display_name'), @@ -279,31 +403,18 @@ class Member{ $count = $users->get_total(); - - foreach ( $users->results as $u ) { - - $card = 0; - $post_addr = get_user_meta($u->ID, 'postal-address', true); $card = trim($post_addr) == ""? -1: 0; - - $medal = 1; $country = get_user_meta($u->ID, 'country', true); - if ($country != "Australia") - $medal = 0; + $step = ($country != "Australia") ? 0: 2; - $this->db->update('sp_medal_100', array( - 'medal' => $medal, - 'card' => $card, - 'card_posted' =>0, - 'card_delivered' => 0, - 'medal_delivered' => 0, - ),array( - 'uid' => $u->ID, - )); + $state = get_user_meta($u->ID, 'state', true); + $step = (strtoupper($state) == "NSW") ? 4: $step; + update_user_meta($u->ID, "hit100collected", $step); + } } |