Подскажите, создал динамическую форму
HTML (с классами, скриптами и ресурсами) и хочу её засунуть в собственный виджет для
Wordpress, форма типа - кнопка, при клике выскакивает модульное окно,
HTML файл формы думаю переделать в php в виде функции и вызова её, а вот с самим плагином не выходит, есть у кого коробка такого примера?
Попробовал в так:
Скрипты не работают, и встала проблема с ресурсами, плагин устанавливается, но при вызове картинки не найдены, подскажите варианты
<?php
/**
* @package Genius
* @version 0.1
*/
/*
Plugin Name:
Plugin URI:
Description:
Author:
Version: 0.1
Author URI:
*/
/* Виджет genius Widget */
class genius_example_widget extends WP_Widget {
// Установка идентификатора, заголовка, имени класса и описания для виджета.
public function __construct() {
$widget_options = array(
'classname' => 'genius_widget',
'description' => 'Виджет выбора оправ и линз',
);
parent::__construct( 'genius_widget', 'genius Widget', $widget_options );
// стили скрипты виджета, только если он активен
if ( is_active_widget( false, false, $this->id_base ) || is_customize_preview() ) {
add_action('wp_register_scripts', array( $this, 'add_genius_scripts' ));
add_action('wp_head', array( $this, 'add_genius_style' ) );
}
}
// Вывод виджета в области виджетов на сайте.
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance[ 'title' ] );
$formlenses = include_once ('lenses_form.php');
echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; ?>
<div> <?php formlenses();?> </div>
<?php echo $args['after_widget'];
var_dump($formlenses);
}
// Параметры виджета, отображаемые в области администрирования WordPress.
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : ''; ?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
<input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $title ); ?>" />
</p><?php
}
// Обновление настроек виджета в админ-панели.
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance[ 'title' ] = strip_tags( $new_instance[ 'title' ] );
return $instance;
}
// скрипт виджета
function add_genius_scripts() {
// фильтр чтобы можно было отключить скрипты
if( ! apply_filters( 'show_genius_script', true, $this->id_base ) )
return;
wp_register_script( 'bgscript_document', plugins_url ('data/document.js', __FILE__) );
wp_register_script( 'bgscript_data', plugins_url('files/lenses_form/data.js', __FILE__) );
wp_register_script( 'bgscript_jquery', plugins_url('resources/scripts/jquery-3.2.1.min.js', __FILE__) );
wp_register_script( 'bgscript_axQuery', plugins_url('resources/scripts/axure/axQuery.js', __FILE__) );
var_dump();
}
// стили виджета
function add_genius_style() {
// фильтр чтобы можно было отключить стили
if( ! apply_filters( 'show_genius_style', true, $this->id_base ) )
return;
wp_enqueue_style( 'bgstyle_rp_page', plugins_url('resources/css/axure_rp_page.css', __FILE__) );
wp_enqueue_style( 'bgstyle_data', plugins_url('data/styles.css', __FILE__) );
wp_enqueue_style( 'bgstyle_form', plugins_url('files/lenses_form/styles.css', __FILE__) );
}
}
// Регистрация и активация виджета.
function genius_register_widget() {
register_widget( 'genius_example_widget' );
}
add_action( 'widgets_init', 'genius_register_widget' );
// Репорт ошибок
/*
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', 1);
ini_set ('display_startup_errors', 1);
*/