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 ) {
|
foreach ( $shipping_methods as $method ) {
|
||||||
// Get fresh settings from database
|
// Get fresh settings from database
|
||||||
$method->init_instance_settings();
|
$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(
|
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'],
|
$zone_data['id'],
|
||||||
$method->id,
|
$method->id,
|
||||||
$method->instance_id,
|
$method->instance_id,
|
||||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET',
|
isset( $method->enabled ) ? $method->enabled : 'NOT SET',
|
||||||
$is_enabled ? 'true' : 'false'
|
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(
|
$rate = array(
|
||||||
'id' => $method->id . ':' . $method->instance_id,
|
'id' => $method->id . ':' . $method->instance_id,
|
||||||
'instance_id' => $method->instance_id,
|
'instance_id' => $method->instance_id,
|
||||||
@@ -154,17 +156,19 @@ class ShippingController extends WP_REST_Controller {
|
|||||||
foreach ( $shipping_methods as $method ) {
|
foreach ( $shipping_methods as $method ) {
|
||||||
// Get fresh settings from database
|
// Get fresh settings from database
|
||||||
$method->init_instance_settings();
|
$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(
|
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->id,
|
||||||
$method->instance_id,
|
$method->instance_id,
|
||||||
isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET',
|
isset( $method->enabled ) ? $method->enabled : 'NOT SET',
|
||||||
$is_enabled ? 'true' : 'false'
|
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(
|
$rate = array(
|
||||||
'id' => $method->id . ':' . $method->instance_id,
|
'id' => $method->id . ':' . $method->instance_id,
|
||||||
'instance_id' => $method->instance_id,
|
'instance_id' => $method->instance_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user