• File: StockNotificationsMetaDataStore.php
  • Full Path: /home/slvgwrnz/public_html/wp-content/plugins/woocommerce/src/Internal/DataStores/StockNotifications/StockNotificationsMetaDataStore.php
  • Date Modified: 09/21/2026 12:55 PM
  • File size: 1.42 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * StockNotificationsMetaDataStore class file.
 */

declare( strict_types = 1 );

namespace Automattic\WooCommerce\Internal\DataStores\StockNotifications;

use Automattic\WooCommerce\Internal\DataStores\CustomMetaDataStore;

defined( 'ABSPATH' ) || exit;

/**
 * Mimics a WP metadata (i.e. add_metadata(), get_metadata() and friends) implementation using a custom table.
 */
class StockNotificationsMetaDataStore extends CustomMetaDataStore {

	/**
	 * Returns the name of the table used for storage.
	 *
	 * @return string
	 */
	public function get_table_name() {
		global $wpdb;
		return $wpdb->prefix . 'wc_stock_notificationmeta';
	}

	/**
	 * Returns the name of the field/column used for identifying metadata entries.
	 *
	 * @return string
	 */
	protected function get_meta_id_field() {
		return 'id';
	}

	/**
	 * Returns the name of the field/column used for associating meta with objects.
	 *
	 * @return string
	 */
	protected function get_object_id_field() {
		return 'notification_id';
	}

	/**
	 * Delete by notification ID.
	 *
	 * @param int $notification_id The notification ID.
	 * @return bool True if the metadata were deleted, false otherwise.
	 */
	public function delete_by_notification_id( $notification_id ) {
		global $wpdb;

		$table  = $this->get_table_name();
		$result = $wpdb->delete(
			$table,
			array( 'notification_id' => $notification_id ),
			array( '%d' )
		);

		return false === $result ? false : true;
	}
}