| | |
| | | */ |
| | | protected function exchangeOAuthCode(string $code): ?array |
| | | { |
| | | error_log('Exchanging tokens with credentials: '.print_r($this->credentials, true)); |
| | | |
| | | $this->ensureInitialized(); |
| | | |
| | | // Prepare the request body as an array |
| | |
| | | } |
| | | |
| | | $data = json_decode(wp_remote_retrieve_body($response), true); |
| | | error_log('OAuth Response: '.print_r($data, true)); |
| | | if (isset($data['access_token'])) { |
| | | return [ |
| | | 'access_token' => $data['access_token'], |
| | |
| | | |
| | | $data = json_decode(wp_remote_retrieve_body($response), true); |
| | | |
| | | error_log('RefreshAccessToken Response: '.print_r($data, true)); |
| | | if (isset($data['access_token'])) { |
| | | $this->credentials['access_token'] = $data['access_token']; |
| | | $this->credentials['expires_at'] = time() + ($data['expires_in'] ?? 2592000); // 30 days |
| | |
| | | { |
| | | // Skip if we don't have credentials yet (during OAuth flow) |
| | | if (empty($this->credentials['access_token'])) { |
| | | error_log('[Square] Skipping loadLocations - no access token yet'); |
| | | return; |
| | | } |
| | | try { |
| | |
| | | return $actions; |
| | | } |
| | | $meta = new MetaForm(); |
| | | $form = '<aside id="cart" class="right"> |
| | | $form = '<aside id="cart" class="right main"> |
| | | <form id="checkout" data-form-id="checkout" data-save="checkout">'; |
| | | |
| | | $tabs = [ |
| | |
| | | */ |
| | | protected function handleTheSavePost(int $postID, \WP_Post $post, bool $update, array $settings): void |
| | | { |
| | | error_log('Queuing Sync to Square'); |
| | | // Queue the sync operation |
| | | $this->queueOperation('sync_to_square', [ |
| | | 'items' => [$postID], |
| | |
| | | |
| | | $message = sprintf( |
| | | "Welcome to %s!\n\n" . |
| | | "Your account has been created. Please click the link below to set your password:\n\n" . |
| | | "Your account has been created. Please click the button below to set your password:\n\n" . |
| | | "%s\n\n" . |
| | | "Once you've set your password, you can log in to:\n" . |
| | | "Or, copy and paste the link below:\n\n". |
| | | "%s\n\n" . |
| | | "Once you've set your password, you can:\n" . |
| | | "- View your order history\n" . |
| | | "- Save your favorite items\n" . |
| | | "- Speed up checkout with saved payment methods\n\n" . |
| | | "If you didn't create this account, please ignore this email.\n\n" . |
| | | "Thanks,\n%s", |
| | | "Thanks,\n", |
| | | $site_name, |
| | | $reset_url, |
| | | $site_name |
| | | JVB()->email()->button('Reset Password', $reset_url), |
| | | JVB()->email()->link($reset_url), |
| | | ); |
| | | |
| | | jvbMail( |
| | | JVB()->email()->sendEmail( |
| | | $user->user_email, |
| | | sprintf('[%s] Welcome! Set Your Password', $site_name), |
| | | $message |
| | |
| | | // Send notification |
| | | $user = get_user_by('ID', $user_id); |
| | | if ($user) { |
| | | wp_mail( |
| | | JVB()->email()->sendEmail( |
| | | $user->user_email, |
| | | '['.get_bloginfo('name').'] Security Code', |
| | | 'For your security, enter this code to continue accessing your account and saved payment methods.', |
| | | ['Content-Type: text/html; charset=UTF-8'] |
| | | ); |
| | | } |
| | | } |
| | |
| | | |
| | | // Validate environment setting |
| | | if (isset($credentials['environment'])) { |
| | | error_log('Environment: '.print_r($credentials['environment'], true)); |
| | | $validEnvironments = ['sandbox', 'production']; |
| | | if (!in_array($credentials['environment'], $validEnvironments)) { |
| | | $this->logError('Invalid environment setting', [ |