Files
wp-multisite-waas/inc/functions/form.php
2025-02-08 13:57:32 -07:00

73 lines
1.6 KiB
PHP

<?php
/**
* Form Functions
*
* @package WP_Ultimo\Functions
* @since 2.0.0
*/
// Exit if accessed directly
defined('ABSPATH') || exit;
use WP_Ultimo\Managers\Form_Manager;
/**
* Registers a new Ajax Form.
*
* Ajax forms are forms that get loaded via an ajax call using thickbox.
* This is useful for displaying inline edit forms that support Vue and our
* Form/Fields API.
*
* @since 2.0.0
* @see \WP_Ultimo\Managers\Form_Manager::register_form
*
* @param string $form_id Form id.
* @param array $atts Form attributes, check wp_parse_atts call below.
* @return mixed
*/
function wu_register_form($form_id, $atts = []) {
return Form_Manager::get_instance()->register_form($form_id, $atts);
}
/**
* Returns the ajax URL for a given form.
*
* @since 2.0.0
* @see \WP_Ultimo\Managers\Form_Manager::get_form_url
*
* @param string $form_id The id of the form to return.
* @param array $atts List of parameters, check wp_parse_args below.
* @param boolean $inline If this form is has content.
* @return string
*/
function wu_get_form_url($form_id, $atts = [], $inline = false) {
if ($inline) {
$atts = wp_parse_args(
$atts,
[
'inlineId' => $form_id,
'width' => '400',
'height' => '360',
]
);
// TB_inline?height=300&width=300&inlineId=wu-add-field
return add_query_arg($atts, '#TB_inline');
}
return Form_Manager::get_instance()->get_form_url($form_id, $atts, $inline);
}
/**
* Adds our fork of the thickbox script.
*
* @since 2.0.0
* @return void
*/
function add_wubox() { // phpcs:ignore
wp_enqueue_script('wubox');
}