| | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | use JVBase\meta\MetaManager; |
| | | use JVBase\meta\Meta; |
| | | use WP_Error; |
| | | use WP_REST_Request; |
| | | use WP_REST_Response; |
| | | |
| | | /** |
| | | * @deprecated |
| | | */ |
| | | class RegisterRoutes extends RestRouteManager { |
| | | |
| | | protected array $config; |
| | |
| | | public function handlePOST(WP_REST_Request $request):WP_REST_Response |
| | | { |
| | | $data = $request->get_params(); |
| | | error_log('Handling update with this data: '.print_r($data, true)); |
| | | $user = $data['user']; |
| | | if (!$this->checkUser($user) || !$this->userCheck($user)) { |
| | | return new WP_REST_Response([ |
| | |
| | | 'message' => 'Looks like you may not be who you say you are...' |
| | | ]); |
| | | } |
| | | error_log('User passed'); |
| | | if ($this->route === 'shop' && !$this->checkTerm([ |
| | | 'term_id' => $data['shop'], |
| | | 'taxonomy' => $this->route |
| | |
| | | 'message' => 'This shop doesn\'t exist?' |
| | | ]); |
| | | } |
| | | error_log('Processing...'); |
| | | $queue = JVB()->queue(); |
| | | unset($data['user']); |
| | | $operationID = $data['id']; |
| | |
| | | } |
| | | protected function handleUpdateOperation(int $userID, array $data):WP_Error|array |
| | | { |
| | | error_log('Handling update Operation with route: '.print_r($this->route, true)); |
| | | if ($this->route === 'options') { |
| | | if (!user_can($userID, 'manage_options')) { |
| | | return [ |
| | |
| | | 'error' => 'User cannot change options' |
| | | ]; |
| | | } |
| | | $meta = new MetaManager(null, $this->route); |
| | | $meta = Meta::forOptions($this->route); |
| | | } else { |
| | | $termID = (int) $data['term_id']; |
| | | if (!user_can($userID, 'manage_'.$this->route.'_'.$termID)) { |
| | |
| | | 'error' => 'User cannot manage this '.$this->route |
| | | ]; |
| | | } |
| | | $meta = new MetaManager($termID, 'term'); |
| | | $meta = Meta::forTerm($termID); |
| | | } |
| | | |
| | | $results = []; |
| | |
| | | return array_key_exists($v, $this->config['fields']??[]); |
| | | }, ARRAY_FILTER_USE_BOTH); |
| | | |
| | | error_log('Allowed Result: '.print_r($allowed, true)); |
| | | |
| | | foreach ($allowed as $name => $value) { |
| | | if (empty($value)) { |
| | | $results[] = $meta->deleteValue($name); |
| | | $results[] = $meta->delete($name); |
| | | } else { |
| | | $results[] = $meta->updateValue($name, $value); |
| | | $results[] = $meta->set($name, $value); |
| | | } |
| | | } |
| | | //Allow plugins & themes to process extra data here |
| | |
| | | } |
| | | |
| | | //get the user's profile id |
| | | $profileID = get_user_meta($userID, BASE.'link', true); |
| | | $profileID = get_user_meta($userID, BASE.'profile_link', true); |
| | | if (!$profileID) { |
| | | return false; |
| | | } |
| | |
| | | return; |
| | | } |
| | | |
| | | $termMeta = new MetaManager($termID, 'term'); |
| | | $managers = explode(',', $termMeta->getValue('managers')); |
| | | $owner = explode(',', $termMeta->getValue('owner')); |
| | | $termMeta = Meta::forTerm($termID); |
| | | $managers = explode(',', $termMeta->get('managers')); |
| | | $owner = explode(',', $termMeta->get('owner')); |
| | | |
| | | $owners = array_unique(array_merge($managers, $owner)); |
| | | |