<?php /** * @package VikBooking * @subpackage core * @author Alessio Gaggii - E4J s.r.l. * @copyright Copyright (C) 2021 E4J s.r.l. All Rights Reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @link https://vikwp.com */ // No direct access defined('ABSPATH') or die('No script kiddies please!'); /** * Declares the methods that a custom pax data field driver should provide. * * @since 1.15.0 (J) - 1.5.0 (WP) */ interface VBOCheckinPaxfields { /** * Returns the name of the current pax data collection driver. * * @return string the name of this driver. */ public function getName(); /** * Builds the list pax fields labels. * * @return array the list of pax fields labels. */ public function getLabels(); /** * Builds the list pax fields attributes. * * @return array the list of pax fields attributes. */ public function getAttributes(); /** * Returns a list of pax fields to collect through this driver. * * @return array the list of pax fields. */ public function listFields(); /** * Tells whether children should be registered. * * @param bool $precheckin true if requested for front-end pre check-in. * * @return bool true to also register the children. * * @since 1.16.3 (J) - 1.6.3 (WP) added $precheckin argument. */ public function registerChildren($precheckin = false); /** * Returns the instance of the given pax field key. * * @param string $key the field key identifier. * * @return VBOCheckinPaxfield the requested pax field object. */ public function getField($key); /** * Renders a specific pax field type. * * @param VBOCheckinPaxfield $field the instance of the pax field to render. * * @return string the HTML string to display the field. */ public function render(VBOCheckinPaxfield $field); }