debug: Check BOTH enabled sources (method->enabled vs instance_settings)
Investigation shows instance_settings["enabled"] = "no" but WooCommerce shows enabled. Hypothesis: - WooCommerce stores enabled status in $method->enabled property - instance_settings["enabled"] might be stale/cached - We were reading the wrong source Changes: ✅ Log BOTH $method->enabled and instance_settings["enabled"] ✅ Switch to using $method->enabled as source of truth ✅ This is what WooCommerce admin uses Test: Refresh page and check if $method->enabled shows "yes"
This commit is contained in:
@@ -100,18 +100,20 @@ class ShippingController extends WP_REST_Controller {
|
||||
foreach ( $shipping_methods as $method ) {
|
||||
// Get fresh settings from database
|
||||
$method->init_instance_settings();
|
||||
$is_enabled = isset( $method->instance_settings['enabled'] ) && $method->instance_settings['enabled'] === 'yes';
|
||||
|
||||
// Debug: Log what we're reading
|
||||
// Debug: Check BOTH sources of enabled status
|
||||
error_log( sprintf(
|
||||
'[WooNooW] Zone %d Method %s (instance %d): enabled setting = "%s", is_enabled = %s',
|
||||
'[WooNooW] Zone %d Method %s (instance %d): $method->enabled = "%s", instance_settings["enabled"] = "%s"',
|
||||
$zone_data['id'],
|
||||
$method->id,
|
||||
$method->instance_id,
|
||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET',
|
||||
$is_enabled ? 'true' : 'false'
|
||||
isset( $method->enabled ) ? $method->enabled : 'NOT SET',
|
||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET'
|
||||
) );
|
||||
|
||||
// Use $method->enabled as the source of truth (this is what WooCommerce uses)
|
||||
$is_enabled = isset( $method->enabled ) && $method->enabled === 'yes';
|
||||
|
||||
$rate = array(
|
||||
'id' => $method->id . ':' . $method->instance_id,
|
||||
'instance_id' => $method->instance_id,
|
||||
@@ -154,17 +156,19 @@ class ShippingController extends WP_REST_Controller {
|
||||
foreach ( $shipping_methods as $method ) {
|
||||
// Get fresh settings from database
|
||||
$method->init_instance_settings();
|
||||
$is_enabled = isset( $method->instance_settings['enabled'] ) && $method->instance_settings['enabled'] === 'yes';
|
||||
|
||||
// Debug: Log what we're reading
|
||||
// Debug: Check BOTH sources of enabled status
|
||||
error_log( sprintf(
|
||||
'[WooNooW] Zone 0 (Rest of World) Method %s (instance %d): enabled setting = "%s", is_enabled = %s',
|
||||
'[WooNooW] Zone 0 (Rest of World) Method %s (instance %d): $method->enabled = "%s", instance_settings["enabled"] = "%s"',
|
||||
$method->id,
|
||||
$method->instance_id,
|
||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET',
|
||||
$is_enabled ? 'true' : 'false'
|
||||
isset( $method->enabled ) ? $method->enabled : 'NOT SET',
|
||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET'
|
||||
) );
|
||||
|
||||
// Use $method->enabled as the source of truth (this is what WooCommerce uses)
|
||||
$is_enabled = isset( $method->enabled ) && $method->enabled === 'yes';
|
||||
|
||||
$rate = array(
|
||||
'id' => $method->id . ':' . $method->instance_id,
|
||||
'instance_id' => $method->instance_id,
|
||||
|
||||
Reference in New Issue
Block a user