From c8d89e9c457bf069c23dff023cebd8628f326969 Mon Sep 17 00:00:00 2001 From: Simran Date: Sat, 23 Dec 2023 02:24:34 +0400 Subject: [PATCH 1/6] Add is_read property to note data --- plugins/woocommerce/src/Admin/Notes/DataStore.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/woocommerce/src/Admin/Notes/DataStore.php b/plugins/woocommerce/src/Admin/Notes/DataStore.php index 1e7f735123dd..1009425df2bb 100644 --- a/plugins/woocommerce/src/Admin/Notes/DataStore.php +++ b/plugins/woocommerce/src/Admin/Notes/DataStore.php @@ -37,6 +37,7 @@ public function create( &$note ) { 'layout' => $note->get_layout(), 'image' => $note->get_image(), 'is_deleted' => (int) $note->get_is_deleted(), + 'is_read' => (int) $note->get_is_read(), ); $note_to_be_inserted['content_data'] = wp_json_encode( $note->get_content_data() ); @@ -110,8 +111,8 @@ public function read( &$note ) { $note->set_date_created( $note_row->date_created ); $note->set_date_reminder( $note_row->date_reminder ); $note->set_is_snoozable( $note_row->is_snoozable ); - $note->set_is_deleted( (bool) $note_row->is_deleted ); - isset( $note_row->is_read ) && $note->set_is_read( (bool) $note_row->is_read ); + $note->set_is_deleted( (int) $note_row->is_deleted ); + isset( $note_row->is_read ) && $note->set_is_read( (int) $note_row->is_read ); $note->set_layout( $note_row->layout ); $note->set_image( $note_row->image ); $this->read_actions( $note ); From 6638b56b0c35e4adc26939df2f93d844aef849a9 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 1 Jan 2024 12:01:11 +0000 Subject: [PATCH 2/6] Add changefile(s) from automation for the following project(s): woocommerce --- .../changelog/43096-fix-16504-vendor-notes-deletion | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/woocommerce/changelog/43096-fix-16504-vendor-notes-deletion diff --git a/plugins/woocommerce/changelog/43096-fix-16504-vendor-notes-deletion b/plugins/woocommerce/changelog/43096-fix-16504-vendor-notes-deletion new file mode 100644 index 000000000000..bad5503ee37d --- /dev/null +++ b/plugins/woocommerce/changelog/43096-fix-16504-vendor-notes-deletion @@ -0,0 +1,4 @@ +Significance: minor +Type: dev + +Fix `is_read` value in Admin notes. \ No newline at end of file From 1d93c123c8a690a5660206625d6ae5064d83dd76 Mon Sep 17 00:00:00 2001 From: Simran Date: Thu, 4 Jan 2024 17:21:16 +0400 Subject: [PATCH 3/6] Remove unnecessary type casting --- plugins/woocommerce/src/Admin/Notes/DataStore.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/woocommerce/src/Admin/Notes/DataStore.php b/plugins/woocommerce/src/Admin/Notes/DataStore.php index 1009425df2bb..2ee3b7471a2a 100644 --- a/plugins/woocommerce/src/Admin/Notes/DataStore.php +++ b/plugins/woocommerce/src/Admin/Notes/DataStore.php @@ -111,8 +111,8 @@ public function read( &$note ) { $note->set_date_created( $note_row->date_created ); $note->set_date_reminder( $note_row->date_reminder ); $note->set_is_snoozable( $note_row->is_snoozable ); - $note->set_is_deleted( (int) $note_row->is_deleted ); - isset( $note_row->is_read ) && $note->set_is_read( (int) $note_row->is_read ); + $note->set_is_deleted( $note_row->is_deleted ); + isset( $note_row->is_read ) && $note->set_is_read( $note_row->is_read ); $note->set_layout( $note_row->layout ); $note->set_image( $note_row->image ); $this->read_actions( $note ); From 6c1e45cf3ff0319ad47785eaad617c1925d56462 Mon Sep 17 00:00:00 2001 From: Simran Date: Thu, 11 Jan 2024 22:55:57 +0400 Subject: [PATCH 4/6] Fix boolean typecasting in DataStore and Note classes --- plugins/woocommerce/src/Admin/Notes/DataStore.php | 12 ++++++------ plugins/woocommerce/src/Admin/Notes/Note.php | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/woocommerce/src/Admin/Notes/DataStore.php b/plugins/woocommerce/src/Admin/Notes/DataStore.php index 2ee3b7471a2a..a6d92286aa8a 100644 --- a/plugins/woocommerce/src/Admin/Notes/DataStore.php +++ b/plugins/woocommerce/src/Admin/Notes/DataStore.php @@ -110,9 +110,9 @@ public function read( &$note ) { $note->set_source( $note_row->source ); $note->set_date_created( $note_row->date_created ); $note->set_date_reminder( $note_row->date_reminder ); - $note->set_is_snoozable( $note_row->is_snoozable ); - $note->set_is_deleted( $note_row->is_deleted ); - isset( $note_row->is_read ) && $note->set_is_read( $note_row->is_read ); + $note->set_is_snoozable( (bool) $note_row->is_snoozable ); + $note->set_is_deleted( (bool) $note_row->is_deleted ); + $note->set_is_read( (bool) $note_row->is_read ); $note->set_layout( $note_row->layout ); $note->set_image( $note_row->image ); $this->read_actions( $note ); @@ -163,11 +163,11 @@ public function update( &$note ) { 'source' => $note->get_source(), 'date_created' => $date_created_to_db, 'date_reminder' => $date_reminder_to_db, - 'is_snoozable' => $note->get_is_snoozable(), + 'is_snoozable' => (int) $note->get_is_snoozable(), 'layout' => $note->get_layout(), 'image' => $note->get_image(), - 'is_deleted' => $note->get_is_deleted(), - 'is_read' => $note->get_is_read(), + 'is_deleted' => (int) $note->get_is_deleted(), + 'is_read' => (int) $note->get_is_read(), ), array( 'note_id' => $note->get_id() ) ); diff --git a/plugins/woocommerce/src/Admin/Notes/Note.php b/plugins/woocommerce/src/Admin/Notes/Note.php index 98995915cce3..8191b6aede7d 100644 --- a/plugins/woocommerce/src/Admin/Notes/Note.php +++ b/plugins/woocommerce/src/Admin/Notes/Note.php @@ -339,7 +339,7 @@ public function get_image( $context = 'view' ) { * Get deleted status. * * @param string $context What the value is for. Valid values are 'view' and 'edit'. - * @return array + * @return bool */ public function get_is_deleted( $context = 'view' ) { return $this->get_prop( 'is_deleted', $context ); @@ -349,7 +349,7 @@ public function get_is_deleted( $context = 'view' ) { * Get is_read status. * * @param string $context What the value is for. Valid values are 'view' and 'edit'. - * @return array + * @return bool */ public function get_is_read( $context = 'view' ) { return $this->get_prop( 'is_read', $context ); From 9ff5e1429634d608a8c3532744ef5ade0c48aa7e Mon Sep 17 00:00:00 2001 From: And Finally Date: Fri, 9 Feb 2024 11:29:43 +0000 Subject: [PATCH 5/6] Restoring the original `isset( $note_row->is_read )` condition. I believe it's there for notes without this property. --- plugins/woocommerce/src/Admin/Notes/DataStore.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/woocommerce/src/Admin/Notes/DataStore.php b/plugins/woocommerce/src/Admin/Notes/DataStore.php index a6d92286aa8a..470cb3f30d3e 100644 --- a/plugins/woocommerce/src/Admin/Notes/DataStore.php +++ b/plugins/woocommerce/src/Admin/Notes/DataStore.php @@ -112,7 +112,7 @@ public function read( &$note ) { $note->set_date_reminder( $note_row->date_reminder ); $note->set_is_snoozable( (bool) $note_row->is_snoozable ); $note->set_is_deleted( (bool) $note_row->is_deleted ); - $note->set_is_read( (bool) $note_row->is_read ); + isset( $note_row->is_read ) && $note->set_is_read( (bool) $note_row->is_read ); $note->set_layout( $note_row->layout ); $note->set_image( $note_row->image ); $this->read_actions( $note ); From a63502fd5fdb70c80584fcb81049f86c0f670ab7 Mon Sep 17 00:00:00 2001 From: And Finally Date: Tue, 19 Mar 2024 14:33:06 +0000 Subject: [PATCH 6/6] WC_Admin_Tests_Notes_Data_Store::test_read to account for return type of `get_is_snoozable`. --- .../woocommerce-admin/notes/class-wc-tests-notes-data-store.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/notes/class-wc-tests-notes-data-store.php b/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/notes/class-wc-tests-notes-data-store.php index fd232e36aae0..4f8ae24bc455 100644 --- a/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/notes/class-wc-tests-notes-data-store.php +++ b/plugins/woocommerce/tests/legacy/unit-tests/woocommerce-admin/notes/class-wc-tests-notes-data-store.php @@ -45,7 +45,7 @@ public function test_read() { $this->assertEquals( $note->get_type(), $read_note->get_type() ); $this->assertEquals( $note->get_name(), $read_note->get_name() ); $this->assertEquals( $note->get_source(), $read_note->get_source() ); - $this->assertEquals( $note->get_is_snoozable(), '0' !== $read_note->get_is_snoozable() ); + $this->assertEquals( $note->get_is_snoozable(), false !== $read_note->get_is_snoozable() ); $this->assertEquals( $note->get_layout(), $read_note->get_layout() ); $this->assertEquals( $note->get_image(), $read_note->get_image() ); $this->assertEquals( $note->get_actions(), $read_note->get_actions() );