73 lines
1.6 KiB
PHP
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');
|
|
}
|