fix: PHP errors and clean up error_log statements

- Fixed redirect_wc_pages_to_spa: added spa_mode check (only redirect when 'full')
- Fixed PHP fatal error: use get_queried_object() instead of global $product
- Removed all error_log debug statements from codebase
- Fixed broken syntax in PaymentGatewaysProvider.php after error_log removal
This commit is contained in:
Dwindi Ramadhana
2026-01-04 10:49:47 +07:00
parent 75a82cf16c
commit 670bd7d351
12 changed files with 11 additions and 73 deletions

View File

@@ -17,7 +17,6 @@ class Assets
{
// Debug logging
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[WooNooW Assets] Hook: ' . $hook);
}
if ($hook !== 'toplevel_page_woonoow') {
@@ -32,7 +31,6 @@ class Assets
// Debug logging
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[WooNooW Assets] Dev mode: ' . ($is_dev ? 'true' : 'false'));
}
if ($is_dev) {
@@ -155,11 +153,6 @@ class Assets
// Debug logging
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[WooNooW Assets] Dist dir: ' . $dist_dir);
error_log('[WooNooW Assets] CSS exists: ' . (file_exists($dist_dir . $css) ? 'yes' : 'no'));
error_log('[WooNooW Assets] JS exists: ' . (file_exists($dist_dir . $js) ? 'yes' : 'no'));
error_log('[WooNooW Assets] CSS URL: ' . $base_url . $css);
error_log('[WooNooW Assets] JS URL: ' . $base_url . $js);
}
if (file_exists($dist_dir . $css)) {
@@ -286,7 +279,6 @@ class Assets
// Debug logging (only if WP_DEBUG is enabled)
if (defined('WP_DEBUG') && WP_DEBUG && $filtered !== $const_dev) {
error_log('[WooNooW Assets] Dev mode changed by filter: ' . ($filtered ? 'true' : 'false'));
}
return (bool) $filtered;

View File

@@ -53,9 +53,6 @@ class StandaloneAdmin {
// Debug logging (only in WP_DEBUG mode)
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( '[StandaloneAdmin] is_user_logged_in: ' . ( $is_logged_in ? 'true' : 'false' ) );
error_log( '[StandaloneAdmin] has manage_woocommerce: ' . ( $has_permission ? 'true' : 'false' ) );
error_log( '[StandaloneAdmin] is_authenticated: ' . ( $is_authenticated ? 'true' : 'false' ) );
}
// Get nonce for REST API

View File

@@ -60,9 +60,6 @@ class AuthController {
// Debug logging
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( '[AuthController::login] Login successful for user ID: ' . $user->ID );
error_log( '[AuthController::login] Current user ID: ' . get_current_user_id() );
error_log( '[AuthController::login] Cookies set: ' . ( headers_sent() ? 'Headers already sent!' : 'OK' ) );
}
// Return user data and new nonce
@@ -154,8 +151,6 @@ class AuthController {
// Debug logging
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( '[AuthController::check] is_user_logged_in: ' . ( $is_logged_in ? 'true' : 'false' ) );
error_log( '[AuthController::check] Cookies: ' . print_r( $_COOKIE, true ) );
}
if ( ! $is_logged_in ) {

View File

@@ -770,16 +770,13 @@ class OrdersController {
if ( null !== $status && $status !== '' ) {
$order_id = $order->get_id();
add_action( 'shutdown', function() use ( $order_id, $status ) {
error_log('[WooNooW] Shutdown hook firing - scheduling email for order #' . $order_id);
self::schedule_order_email( $order_id, $status );
error_log('[WooNooW] Email scheduled successfully for order #' . $order_id);
}, 999 );
}
return new \WP_REST_Response( [ 'ok' => true, 'id' => $order->get_id() ], 200 );
} catch ( \Throwable $e ) {
// Log the actual error for debugging
error_log('[WooNooW] Order update failed: ' . $e->getMessage());
// Return user-friendly error message
return new \WP_REST_Response( [
@@ -797,13 +794,11 @@ class OrdersController {
public static function on_order_status_changed( $order_id, $status_from, $status_to, $order ) {
// Skip if we're in an API request (we schedule manually there)
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
error_log('[WooNooW] Skipping auto-schedule during API request for order #' . $order_id);
return;
}
// Schedule email notification with 15s delay
self::schedule_order_email( $order_id, $status_to );
error_log('[WooNooW] Order #' . $order_id . ' status changed: ' . $status_from . ' → ' . $status_to . ', email scheduled');
}
/**
@@ -1042,7 +1037,6 @@ class OrdersController {
$order->apply_coupon( $coupon );
}
} catch ( \Throwable $e ) {
error_log( '[WooNooW] Coupon error: ' . $e->getMessage() );
}
}
@@ -1234,7 +1228,6 @@ class OrdersController {
} catch ( \Throwable $e ) {
// Log the actual error for debugging
error_log('[WooNooW] Order creation failed: ' . $e->getMessage());
// Return user-friendly error message
return new \WP_REST_Response( [
@@ -2025,7 +2018,6 @@ class OrdersController {
// Check if gateway exists
if ( ! isset( $gateways[ $gateway_id ] ) ) {
error_log( '[WooNooW] Payment gateway not found: ' . $gateway_id );
return new \WP_Error( 'gateway_not_found', sprintf( __( 'Payment gateway not found: %s', 'woonoow' ), $gateway_id ) );
}
@@ -2033,7 +2025,6 @@ class OrdersController {
// Check if gateway has process_payment method
if ( ! method_exists( $gateway, 'process_payment' ) ) {
error_log( '[WooNooW] Gateway does not have process_payment method: ' . $gateway_id );
return new \WP_Error( 'no_process_method', sprintf( __( 'Gateway does not support payment processing: %s', 'woonoow' ), $gateway_id ) );
}
@@ -2045,7 +2036,6 @@ class OrdersController {
// Set flag for gateways to detect admin context
add_filter( 'woonoow/is_admin_order', '__return_true' );
error_log( '[WooNooW] Processing payment for order #' . $order->get_id() . ' with gateway: ' . $gateway_id );
// Call gateway's process_payment method
$result = $gateway->process_payment( $order->get_id() );
@@ -2061,11 +2051,9 @@ class OrdersController {
if ( isset( $result['result'] ) && $result['result'] === 'success' ) {
$order->add_order_note( __( 'Payment gateway processing completed via WooNooW', 'woonoow' ) );
error_log( '[WooNooW] Payment processing succeeded for order #' . $order->get_id() );
} elseif ( isset( $result['result'] ) && $result['result'] === 'failure' ) {
$message = isset( $result['message'] ) ? $result['message'] : __( 'Payment processing failed', 'woonoow' );
$order->add_order_note( sprintf( __( 'Payment gateway error: %s', 'woonoow' ), $message ) );
error_log( '[WooNooW] Payment processing failed for order #' . $order->get_id() . ': ' . $message );
}
$order->save();
@@ -2074,7 +2062,6 @@ class OrdersController {
return $result;
} catch ( \Throwable $e ) {
error_log( '[WooNooW] Payment processing exception for order #' . $order->get_id() . ': ' . $e->getMessage() );
$order->add_order_note( sprintf( __( 'Payment gateway exception: %s', 'woonoow' ), $e->getMessage() ) );
$order->save();

View File

@@ -212,12 +212,10 @@ class PaymentsController extends WP_REST_Controller {
try {
// Debug: Log what we're saving
error_log(sprintf('[WooNooW] Saving gateway %s settings: %s', $gateway_id, json_encode($settings)));
$result = PaymentGatewaysProvider::save_gateway_settings($gateway_id, $settings);
if (is_wp_error($result)) {
error_log(sprintf('[WooNooW] Save failed: %s', $result->get_error_message()));
return $result;
}
@@ -228,7 +226,6 @@ class PaymentsController extends WP_REST_Controller {
$gateway = PaymentGatewaysProvider::get_gateway($gateway_id);
// Debug: Log success
error_log(sprintf('[WooNooW] Gateway %s settings saved successfully', $gateway_id));
return rest_ensure_response([
'success' => true,
@@ -236,7 +233,6 @@ class PaymentsController extends WP_REST_Controller {
'gateway' => $gateway,
]);
} catch (\Exception $e) {
error_log(sprintf('[WooNooW] Save exception: %s', $e->getMessage()));
return new WP_Error(
'save_gateway_failed',
$e->getMessage(),
@@ -268,12 +264,10 @@ class PaymentsController extends WP_REST_Controller {
try {
// Debug: Log what we're trying to do
error_log(sprintf('[WooNooW] Toggling gateway %s to %s', $gateway_id, $enabled ? 'enabled' : 'disabled'));
$result = PaymentGatewaysProvider::toggle_gateway($gateway_id, $enabled);
if (is_wp_error($result)) {
error_log(sprintf('[WooNooW] Toggle failed: %s', $result->get_error_message()));
return $result;
}
@@ -284,7 +278,6 @@ class PaymentsController extends WP_REST_Controller {
$gateway = PaymentGatewaysProvider::get_gateway($gateway_id);
// Debug: Log what we got back
error_log(sprintf('[WooNooW] Gateway %s after toggle: enabled=%s', $gateway_id, $gateway['enabled'] ? 'true' : 'false'));
return rest_ensure_response([
'success' => true,
@@ -292,7 +285,6 @@ class PaymentsController extends WP_REST_Controller {
'gateway' => $gateway,
]);
} catch (\Exception $e) {
error_log(sprintf('[WooNooW] Toggle exception: %s', $e->getMessage()));
return new WP_Error(
'toggle_gateway_failed',
$e->getMessage(),
@@ -333,7 +325,6 @@ class PaymentsController extends WP_REST_Controller {
$option_key = 'woonoow_payment_gateway_order_' . $category;
update_option($option_key, $order, false);
error_log(sprintf('[WooNooW] Saved %s gateway order: %s', $category, implode(', ', $order)));
return rest_ensure_response([
'success' => true,

View File

@@ -454,7 +454,6 @@ class ShippingController extends WP_REST_Controller {
);
} catch ( \Exception $e ) {
error_log( sprintf( '[WooNooW] Toggle exception: %s', $e->getMessage() ) );
return new WP_REST_Response(
array(
'error' => 'toggle_failed',

View File

@@ -391,24 +391,15 @@ class PaymentGatewaysProvider {
$new_settings = array_merge($current_settings, $settings);
// Debug logging
error_log(sprintf('[WooNooW] Saving gateway %s settings: %s', $gateway_id, json_encode($settings)));
error_log(sprintf('[WooNooW] Current enabled: %s, New enabled: %s',
isset($current_settings['enabled']) ? $current_settings['enabled'] : 'not set',
isset($new_settings['enabled']) ? $new_settings['enabled'] : 'not set'
));
// Update gateway settings directly
$gateway->settings = $new_settings;
// Save to database using WooCommerce's method
$saved = update_option($gateway->get_option_key(), $gateway->settings, 'yes');
error_log(sprintf('[WooNooW] update_option returned: %s', $saved ? 'true' : 'false'));
// Update the enabled property specifically (WooCommerce does this)
if (isset($new_settings['enabled'])) {
$gateway->enabled = $new_settings['enabled'];
error_log(sprintf('[WooNooW] Set gateway->enabled to: %s', $gateway->enabled));
}
// Re-enable HTTP requests

View File

@@ -58,7 +58,6 @@ class Installer {
$wc_page_id = get_option($page_data['wc_option']);
if ($wc_page_id && get_post($wc_page_id)) {
$page_id = $wc_page_id;
error_log("WooNooW: Found existing WooCommerce {$page_data['title']} page (ID: {$page_id})");
}
}
@@ -67,7 +66,6 @@ class Installer {
$woonoow_page_id = get_option('woonoow_' . $key . '_page_id');
if ($woonoow_page_id && get_post($woonoow_page_id)) {
$page_id = $woonoow_page_id;
error_log("WooNooW: Found existing WooNooW {$page_data['title']} page (ID: {$page_id})");
}
}
@@ -76,7 +74,6 @@ class Installer {
$existing_page = get_page_by_title($page_data['title'], OBJECT, 'page');
if ($existing_page) {
$page_id = $existing_page->ID;
error_log("WooNooW: Found existing {$page_data['title']} page by title (ID: {$page_id})");
}
}
@@ -95,9 +92,7 @@ class Installer {
'post_content' => $page_data['content'],
]);
error_log("WooNooW: Updated {$page_data['title']} page with WooNooW shortcode");
} else {
error_log("WooNooW: {$page_data['title']} page already has WooNooW shortcode");
}
} else {
// No existing page found, create new one
@@ -111,7 +106,6 @@ class Installer {
]);
if ($page_id && !is_wp_error($page_id)) {
error_log("WooNooW: Created new {$page_data['title']} page (ID: {$page_id})");
}
}
@@ -162,7 +156,6 @@ class Installer {
// Remove backup
delete_post_meta($page_id, '_woonoow_original_content');
error_log("WooNooW: Restored original content for page ID: {$page_id}");
}
}
}

View File

@@ -119,7 +119,6 @@ class EmailManager {
*/
public function send_order_processing_email($order_id, $order = null) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] send_order_processing_email triggered for order #' . $order_id);
}
if (!$order) {
@@ -128,7 +127,6 @@ class EmailManager {
if (!$order) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Order not found for ID: ' . $order_id);
}
return;
}
@@ -136,13 +134,11 @@ class EmailManager {
// Check if event is enabled
if (!$this->is_event_enabled('order_processing', 'email', 'customer')) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] order_processing email is disabled in settings');
}
return;
}
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Sending order_processing email for order #' . $order_id);
}
// Send email
@@ -397,7 +393,6 @@ class EmailManager {
if (!$email) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Password reset email rendering failed for user: ' . $user->user_login);
}
return;
}
@@ -411,7 +406,6 @@ class EmailManager {
$sent = wp_mail($email['to'], $email['subject'], $email['body'], $headers);
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Password reset email sent to ' . $email['to'] . ' - Result: ' . ($sent ? 'success' : 'failed'));
}
// Log email sent
@@ -484,7 +478,6 @@ class EmailManager {
// This allows the plugin to work out-of-the-box with default templates
if ($channel_id === 'email') {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Event not configured, using default: enabled');
}
return true; // Enable by default
}
@@ -502,7 +495,6 @@ class EmailManager {
*/
private function send_email($event_id, $recipient_type, $data, $extra_data = []) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] send_email called - Event: ' . $event_id . ', Recipient: ' . $recipient_type);
}
// Get email renderer
@@ -513,13 +505,11 @@ class EmailManager {
if (!$email) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Email rendering failed for event: ' . $event_id);
}
return;
}
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] Email rendered successfully - To: ' . $email['to'] . ', Subject: ' . $email['subject']);
}
// Send email via wp_mail
@@ -531,7 +521,6 @@ class EmailManager {
$sent = wp_mail($email['to'], $email['subject'], $email['body'], $headers);
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailManager] wp_mail called - Result: ' . ($sent ? 'success' : 'failed'));
}
// Log email sent

View File

@@ -86,13 +86,11 @@ class EmailRenderer {
if (!$template) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailRenderer] No template found for event: ' . $event_id . ', recipient: ' . $recipient_type);
}
return null;
}
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('[EmailRenderer] Template found - Subject: ' . ($template['subject'] ?? 'no subject'));
}
// Get design template preference

View File

@@ -229,7 +229,6 @@ class PushNotificationHandler {
self::queue_notification($subscription_id, $payload);
$sent++;
} catch (\Exception $e) {
error_log('Push notification error: ' . $e->getMessage());
}
}

View File

@@ -159,11 +159,17 @@ class TemplateOverride
*/
public static function redirect_wc_pages_to_spa()
{
// Get SPA page URL
// Get SPA settings
$appearance_settings = get_option('woonoow_appearance_settings', []);
$spa_page_id = $appearance_settings['general']['spa_page'] ?? 0;
$spa_mode = $appearance_settings['general']['spa_mode'] ?? 'full';
$use_browser_router = $appearance_settings['general']['use_browser_router'] ?? true;
// Only redirect when SPA mode is 'full'
if ($spa_mode !== 'full') {
return;
}
if (!$spa_page_id) {
return; // No SPA page configured
}
@@ -193,9 +199,10 @@ class TemplateOverride
}
if (is_product()) {
global $product;
if ($product) {
$slug = $product->get_slug();
// Use get_queried_object() which returns the WP_Post, then get slug
$product_post = get_queried_object();
if ($product_post && isset($product_post->post_name)) {
$slug = $product_post->post_name;
wp_redirect($build_route('product/' . $slug), 302);
exit;
}