WC_Interactivity_Initial_State{}WC 1.0

Manages the initial state of the Interactivity API store in the server and its serialization so it can be restored in the browser upon hydration.

It's a private class, exposed by other functions, like wc_initial_state.

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Хуков нет.

Использование

$WC_Interactivity_Initial_State = new WC_Interactivity_Initial_State();
// use class methods

Методы

  1. public static get_state( $namespace )
  2. public static merge_state( $namespace, $data )
  3. public static render()
  4. public static reset()

Код WC_Interactivity_Initial_State{} WC 9.5.1

class WC_Interactivity_Initial_State {
	/**
	 * Map of initial state by namespace.
	 *
	 * @var array
	 */
	private static $initial_state = array();

	/**
	 * Get state from a given namespace.
	 *
	 * @param string $namespace Namespace.
	 *
	 * @return array The requested state.
	 */
	public static function get_state( $namespace ) {
		return self::$initial_state[ $namespace ] ?? array();
	}

	/**
	 * Merge data into the state with the given namespace.
	 *
	 * @param string $namespace Namespace.
	 * @param array  $data      State to merge.
	 *
	 * @return void
	 */
	public static function merge_state( $namespace, $data ) {
		self::$initial_state[ $namespace ] = array_replace_recursive(
			self::get_state( $namespace ),
			$data
		);
	}

	/**
	 * Reset the initial state.
	 */
	public static function reset() {
		self::$initial_state = array();
	}

	/**
	 * Render the initial state.
	 */
	public static function render() {
		if ( empty( self::$initial_state ) ) {
			return;
		}
		echo sprintf(
			'<script id="wc-interactivity-initial-state" type="application/json">%s</script>',
			wp_json_encode( self::$initial_state, JSON_HEX_TAG | JSON_HEX_AMP )
		);
	}
}