Automattic\WooCommerce\Internal\Admin\Notes

WooSubscriptionsNotes::prune_inactive_subscription_notes()publicWC 1.0

Removes notes for product_ids no longer active on this site.

Method of the class: WooSubscriptionsNotes{}

No Hooks.

Return

null. Nothing (null).

Usage

$WooSubscriptionsNotes = new WooSubscriptionsNotes();
$WooSubscriptionsNotes->prune_inactive_subscription_notes();

WooSubscriptionsNotes::prune_inactive_subscription_notes() code WC 8.7.0

public function prune_inactive_subscription_notes() {
	$active_product_ids = $this->get_subscription_active_product_ids();

	$data_store = Notes::load_data_store();
	$note_ids   = $data_store->get_notes_with_name( self::SUBSCRIPTION_NOTE_NAME );

	foreach ( (array) $note_ids as $note_id ) {
		$note       = Notes::get_note( $note_id );
		$product_id = $this->get_product_id_from_subscription_note( $note );
		if ( ! empty( $product_id ) ) {
			if ( ! in_array( $product_id, $active_product_ids, true ) ) {
				$note->delete();
			}
		}
	}
}