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# 纪念章签收

+
+ +
+
diff --git a/html/workspace.html b/html/workspace.html index 586b2bd..98b52aa 100644 --- a/html/workspace.html +++ b/html/workspace.html @@ -28,25 +28,25 @@ @@ -57,9 +57,9 @@ @@ -67,43 +67,85 @@ - - + - + - + + + + + + + + + + + + + + + + + + + + + + +
Postal Address
- - +
State in Australia - + +
Delivery: - N/A
- Direct Post
- Pick up from Patrick Sun + N/A
+ Direct Post
+ Pick up from

-
- + From Alma mater to AU
- 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); + } }