hardening 2.0: 2meet-data-optimizer-hivepress-addon (staged rollout, dev22 first) #1

Merged
wpdev merged 12 commits from hardening/2.0 into main 2026-09-26 10:24:17 +08:00
2 changed files with 16 additions and 3 deletions
Showing only changes of commit e443f20edb - Show all commits
@@ -10,7 +10,8 @@
*
* start_time / end_time → unix timestamp range queries (hot)
* status → enum filter (hot)
* guests → numeric count (hot for slot-availability)
* quantity → places booked, hp_quantity (hot for slot-availability;
* only written when "Allow multiple places" is on)
* listing → post_parent (already a posts column)
*
* Hot-zone target: `wp_wpdo_hot_hp_booking` with covering indexes on
@@ -91,10 +92,10 @@ if ( ! class_exists( 'TMDO_HivePress_Bookings_Adapter' ) ) {
),
array(
'post_type' => 'hp_booking',
'meta_key' => 'hp_guests',
'meta_key' => 'hp_quantity',
'zone' => 'hot',
'data_type' => 'int(11) NOT NULL DEFAULT 0',
'column' => 'hp_guests',
'column' => 'hp_quantity',
'indexed' => false,
),
)
+12
View File
@@ -46,6 +46,18 @@ class HivePressBookingsAdapterTest extends TestCase {
$this->assertTrue( (bool) $end['indexed'] );
}
public function test_on_register_fields_uses_real_booking_meta_keys(): void {
$registry = WPDO_Schema_Registry::instance();
$this->adapter->on_register_fields( $registry );
// hivepress-bookings has no guests field; places are stored as hp_quantity.
$this->assertNull( $registry->get_field( 'hp_booking', 'hp_guests' ) );
$quantity = $registry->get_field( 'hp_booking', 'hp_quantity' );
$this->assertNotNull( $quantity );
$this->assertSame( 'hot', $quantity['zone'] );
}
public function test_score_reflects_unverified_perf_dimension(): void {
$score = $this->adapter->suitability_score();
// D8 reduced to 0.9 because schema is best-effort until addon installs.