Commit e45ca20f by Alto

Реализация форм обратных связей

1 parent 15750e6a
...@@ -3,5 +3,14 @@ ...@@ -3,5 +3,14 @@
# Директивы (строки) между `BEGIN WordPress` и `END WordPress` # Директивы (строки) между `BEGIN WordPress` и `END WordPress`
# созданы автоматически и подлежат изменению только через фильтры WordPress. # созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны. # Сделанные вручную изменения между этими маркерами будут перезаписаны.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress # END WordPress
\ No newline at end of file \ No newline at end of file
This diff could not be displayed because it is too large.
$(document).ready( $(document).ready(
function () function ()
{ {
$('form.ajax-submit').on(
'submit.fenix',
function (event)
{
event.preventDefault();
event.stopPropagation();
if ($(this).hasClass('needs-validation'))
$(this).toggleClass('was-validated', $(this).get(0).checkValidity());
var action = $(this).attr('action');
$.ajax(
{
method: 'POST',
url: action,
data: $( this ).serialize(),
context: $( this ),
beforeSend: function(xhr){
$(this).find('.form-preloader').removeClass('d-none');
},
success: function ( data, textStatus, jqXHR )
{
var error_text = [];
$(jqXHR.responseText).filter('.wp-die-message').each(
function ()
{
error_text.push($(this).text());
}
);
if (error_text.length>0)
$('#alertModalBody').html(error_text.join());
else
{
var text_alert = '';
switch($(this).attr('id'))
{
case 'form_backvoices':
case 'form_backvoices_big': text_alert = '<p class="m-0">Заявка на звонок принята!</p>'; break;
case 'form_fenix-shprics':
text_alert = '<p class="m-0">Ваше обращение принято на рассмотрение!</p>';
$(this).find('input[type="hidden"][name="comment"]').val((new Date).getTime());
break;
default: text_alert = '<p class="m-0">Спасибо за отзыв!</p>'; break;
}
$('#alertModalBody').html(text_alert);
$(this).find('input[type="checkbox"]').prop('checked', false);
$(this).find('input[type="text"]').val('');
$(this).find('input[type="email"]').val('');
$(this).find('textarea').val('');
}
},
error: function ( jqXHR, textStatus, errorThrown )
{
var error_text = [];
$(jqXHR.responseText).filter('.wp-die-message').each(
function ()
{
error_text.push($(this).text());
}
);
$('#alertModalBody').html(
'<p class="m-0">'+
(
error_text.length==0?
'Ошибка отправки данных.':
error_text.join()
)+
'</p>'
);
},
complete: function( jqXHR, textStatus )
{
$('.captcha-refrash').trigger('click.fenix');
$(this).find('.form-preloader').addClass('d-none');
if ($(this).attr('id')==='form_backvoices')
$('#backvoicesModal').modal('hide');
$(this).removeClass('was-validated');
$('#alertModal').modal('show');
}
}
);
event.preventDefault();
return false;
}
);
//Маска ввода телефона //Маска ввода телефона
$('input[name="phone"]').inputmask({"mask": "+7 (999) 999-99-99"}); $('input[name="phone"]').inputmask({"mask": "+7 (999) 999-99-99"});
} }
......
...@@ -60,8 +60,8 @@ ...@@ -60,8 +60,8 @@
?> ?>
</div> </div>
<div class="col-3 p-0 text-end"> <div class="col-3 p-0 text-end">
<button class="btn btn-lg btn-style-0 rounded-pill me-4 d-inline-block" role="button">+7 (8652) 22-25-09</button> <a href="tel:88652991199" class="btn btn-lg btn-style-0 rounded-pill me-4 d-inline-flex" role="button">+7 (8652) 22-25-09</a>
<button class="btn btn-lg btn-style-1 rounded-pill d-inline-block" role="button" data-icon="phone"></button> <button class="btn btn-lg btn-style-1 rounded-pill d-inline-block" role="button" data-icon="phone" data-bs-toggle="modal" data-bs-target="#backvoicesModal"></button>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
......
...@@ -85,4 +85,163 @@ function action_setup_theme() { ...@@ -85,4 +85,163 @@ function action_setup_theme() {
) )
); );
} }
add_action( 'after_setup_theme', 'action_setup_theme' );
\ No newline at end of file \ No newline at end of file
add_action( 'after_setup_theme', 'action_setup_theme' );
function my_custom_init(){
//Добавляю поддержку форматов статей для страниц
add_post_type_support( 'page', 'post-formats' );
}
add_action( 'init', 'my_custom_init' );
add_filter( 'pre_comment_on_post', 'truemisha_verify_comment' );
function truemisha_verify_comment( $commentdata ) {
if ( isset($_POST[ 'author' ]) && empty( $_POST[ 'author' ] ) ) {
wp_die( 'Укажите Ваше имя!' );
}
if ( isset($_POST[ 'phone' ]) && empty( $_POST[ 'phone' ] ) ) {
wp_die( 'Укажите телефон!' );
}
if (
!isset($_POST[ 'accept' ]) ||
empty( $_POST[ 'accept' ] )
) {
wp_die( 'Согласитесь с обработкой Ваших персональных данных!' );
}
$post = get_page_by_path( 'backvoices' );
$post_main = get_page_by_path( 'main' );
if ($post === null)
wp_die( 'Ошибка сервера при полученни данных формы' );
elseif (isset($_POST[ 'comment_post_ID' ])===false)
wp_die( 'Ошибка сервера при полученни данных о форме' );
elseif (
(int)$_POST[ 'comment_post_ID' ] == (int)$post->ID ||
(int)$_POST[ 'comment_post_ID' ] == (int)$post_main->ID
)
{
}
unset($post_main, $post);
return $commentdata;
}
add_action( 'comment_post', 'truemisha_save_comment_field_data' );
function truemisha_save_comment_field_data( $comment_id ) {
if( !empty( $_POST['phone'] ) ){
$phone = sanitize_text_field($_POST['phone']);
add_comment_meta( $comment_id, 'phone', $phone );
}
}
// Добавляем новый метабокс на страницу редактирования комментария
add_action( 'add_meta_boxes_comment', 'extend_comment_add_meta_box' );
function extend_comment_add_meta_box($comment){
add_meta_box( 'wrap', 'Дополнительные поля', 'extend_comment_meta_box', 'comment', 'normal', 'high' );
}
// Отображаем наши поля
function extend_comment_meta_box( $comment ){
$phone = get_comment_meta( $comment->comment_ID, 'phone', true );
wp_nonce_field( 'extend_comment_update', 'extend_comment_update', false );
?>
<p>
<label for="phone">Телефон</label>
<input type="text" name="phone" value="<?php echo esc_attr( $phone ); ?>" class="widefat" />
</p>
<?php
}
add_action( 'edit_comment', 'extend_comment_edit_meta_data' );
function extend_comment_edit_meta_data( $comment_id ) {
if( ! isset( $_POST['extend_comment_update'] ) || ! wp_verify_nonce( $_POST['extend_comment_update'], 'extend_comment_update' ) )
return;
if( !empty($_POST['phone']) ){
$phone = sanitize_text_field($_POST['phone']);
update_comment_meta( $comment_id, 'phone', $phone );
}
else
delete_comment_meta( $comment_id, 'phone');
}
add_action( 'comment_post', 'author_new_comment_notify', 10, 2 );
function author_new_comment_notify( $comment_ID, $comment_approved ){
$comment = get_comment( $comment_ID );
$post = get_post( $comment->comment_post_ID );
switch($post->post_name)
{
case 'backvoices':
// сообщение
$message = 'Новая заявка на "'. $post->post_title .'"'. "\r\n";
$message .= sprintf( __('Имя : %1$s (IP: %2$s)'), $comment->comment_author, $comment->comment_author_IP ) . "\r\n";
$message .= sprintf( __('Телефон : %s'), get_comment_meta( $comment_ID, 'phone', true ) ) . "\r\n";
$message .= 'Комментарий: ' . "\r\n" . $comment->comment_content . "\r\n\r\n";
// Тема
$subject = '['.$_SERVER['HTTP_HOST'].'] Заявка на обратный звонок от '.$comment->comment_author;
// заголовки
$headers = 'From: No Answer <noanswer@'. $_SERVER['HTTP_HOST'] .'>' . "\r\n";
@wp_mail( get_option( 'admin_email' ), $subject, $message, $headers );
break;
case 'main':
// сообщение
$message = 'Новая заявка на "Обратную связь"'. "\r\n";
$message .= sprintf( __('Имя : %1$s (IP: %2$s)'), $comment->comment_author, $comment->comment_author_IP ) . "\r\n";
$message .= sprintf( __('Телефон : %s'), get_comment_meta( $comment_ID, 'phone', true ) ) . "\r\n\r\n";
// Тема
$subject = '['.$_SERVER['HTTP_HOST'].'] Заявка на обратную связь от '.$comment->comment_author;
// заголовки
$headers = 'From: No Answer <noanswer@'. $_SERVER['HTTP_HOST'] .'>' . "\r\n";
wp_mail( get_option( 'admin_email' ), $subject, $message, $headers );
break;
}
}
/*Вывод в админку колонку с телефоном*/
function rudr_add_comments_columns( $my_cols ){
$misha_columns = array(
'phone' => 'Телефон'
);
$my_cols = array_slice( $my_cols, 0, 3, true ) + $misha_columns + array_slice( $my_cols, 3, NULL, true );
return $my_cols;
}
add_filter( 'manage_edit-comments_columns', 'rudr_add_comments_columns' );
function rudr_add_comment_columns_content( $column, $comment_ID ) {
global $comment;
switch ( $column ) :
case 'phone' :
{
if ( $meta = get_comment_meta( $comment_ID, $column, true ) ) {
echo $meta;
} else {
echo '-';
}
break;
}
endswitch;
}
add_action( 'manage_comments_custom_column', 'rudr_add_comment_columns_content', 10, 2 );
/*
add_filter( 'wp_die_handler', 'my_wp_die_handler_function', 9 ); //9 means you can unhook the default before it fires
function my_wp_die_handler_function($function) {
return 'my_skip_dupes_function'; //use our "die" handler instead (where we won't die)
}
//check to make sure we're only filtering out die requests for the "Duplicate" error we care about
function my_skip_dupes_function( $message, $title, $args ) {
if (strpos( $message, 'Duplicate comment detected' ) === 0 ) { //make sure we only prevent death on the $dupe check
remove_filter( 'wp_die_handler', '_default_wp_die_handler' ); //don't die
}
return; //nothing will happen
}
*/
\ No newline at end of file \ No newline at end of file
...@@ -39,10 +39,92 @@ ...@@ -39,10 +39,92 @@
) )
); );
?> ?>
<button class="btn btn-lg btn-style-0 rounded-pill me-md-4 mx-auto" role="button">+7 (8652) 22-25-09</button> <a href="tel:88652991199" class="btn btn-lg btn-style-0 rounded-pill me-md-4 mx-auto" role="button">+7 (8652) 22-25-09</a>
</div> </div>
<button class="btn btn-lg btn-style-1 rounded-pill" role="button" data-icon="phone"></button> <button class="btn btn-lg btn-style-1 rounded-pill" role="button" data-icon="phone" data-bs-toggle="modal" data-bs-target="#backvoicesModal"></button>
<button class="navbar-toggler p-0" type="button" data-bs-toggle="collapse" data-bs-target="#maim-menu-wrap" aria-controls="maim-menu-wrap" aria-expanded="false" aria-label="Меню" data-icon="burger"></button> <button class="navbar-toggler p-0" type="button" data-bs-toggle="collapse" data-bs-target="#maim-menu-wrap" aria-controls="maim-menu-wrap" aria-expanded="false" aria-label="Меню" data-icon="burger"></button>
</div> </div>
</nav> </nav>
</header> </header>
<!-- Modal -->
<div class="modal fade" id="backvoicesModal" tabindex="-1" aria-labelledby="backvoicesModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content rounded-4 text-color-1 bg-custom-9 shadow-2">
<div class="modal-header">
<p id="backvoicesModalLabel" class="text-center text-md-start modal-title m-0" style="font-family: 'Fontin Sans CR';color: var(--m-blue);font-weight: 700;line-height: 1em;margin-bottom: 1.5rem;font-size: 33px;">Обратный звонок</p>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container text-gray">
<div class="row">
<div class="col-12 my-mb-0">
<?php
$args = array(
'id_form'=>'form_backvoices',
'fields'=>array(
'author' => '<div class="form-floating mb-3" style="order:-2;">'.
'<input type="text" class="form-control form-control-lg rounded-4 border-0" name="author" id="author" placeholder="Ваше имя" value="" size="30" required/>'.
'<label for="author" class="form-label">Ваше имя:</label>'.
'<div class="invalid-feedback">Пожалуйста, укажите имя пользователя</div>'.
'</div>',
'phone' => '<div class="form-floating mb-3" style="order:-1;">'.
'<input type="text" class="form-control form-control-lg rounded-4 border-0" name="phone" id="phone" placeholder="Номер телефона" value="" required />'.
'<label for="phone" class="form-label">Номер телефона:</label>'.
'<div class="invalid-feedback">Пожалуйста, укажите телефон</div>'.
'</div>',
'cookies' => '<div class="form-check mb-3 ps-0">'.
'<input type="checkbox" name="accept" class="form-check-input d-none" id="accept" value="accept" required="required" checked="checked"/>'.
'<label class="form-check-label" for="accept">
<span>Я даю согласие на <a href="'.get_permalink( get_page_by_path( 'privacy-policy' ) ).'" class="text-blue">обработку персональных данных</a>.</span>
</label>'.
'<div class="invalid-feedback">Вы должны принять перед отправкой</div>'.
'</div>'
),
'comment_field' => '<div class="form-floating mb-3" >'.
'<textarea class="form-control form-control-lg rounded-4 border-0" placeholder="Комментарий" name="comment" id="comment" rows="8" aria-required="true" style="height: 100px" required></textarea>'.
'<label for="comment" class="form-label">Комментарий</label>'.
'<div class="invalid-feedback">Пожалуйста, введите комментарий</div>'.
'</div>',
'submit_button'=> '<button name="%1$s" type="submit" class="btn btn-lg btn-style-1 rounded-pill mx-auto w-100 %3$s" value="%4$s" id="%2$s">Отправить заявку</button>',
'comment_notes_before' => '',
'title_reply'=> ''.
'<div class="form-preloader align-items-center justify-content-center d-flex d-none text-center position-absolute top-0 bottom-0 start-0 end-0 m-auto" style="z-index:1; background-color: rgba(255,255,255,0.8)">'.
'<div class="spinner-border" role="status">'.
'<span class="visually-hidden">Обработка...</span>'.
'</div>'.
'</div>',
'class_form'=>'d-flex flex-column needs-validation ajax-submit'
);
comment_form($args, url_to_postid('backvoices'));
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="alertModal" tabindex="-1" aria-labelledby="alertModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title m-0" id="alertModalLabel">Уведомление</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div id="alertModalBody" class="modal-body text-center">
<!--
Заявка на звонок принята
Спасибо за отзыв!
-->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-lg btn-default btn-style-5 rounded-pill mx-auto" data-bs-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
...@@ -33,23 +33,49 @@ function fenix_shprics ($atts, $content) ...@@ -33,23 +33,49 @@ function fenix_shprics ($atts, $content)
'<div class="description">'.$post->post_content.'</div>'. '<div class="description">'.$post->post_content.'</div>'.
'</div>'. '</div>'.
'</div>'. '</div>'.
'<div class="col-12 col-md-6 text-md-end">'. '<div class="col-12 col-md-6 text-md-end">';
'<form class="needs-validation text-start mx-auto me-md-0 rounded-4 text-color-1 bg-custom-9 shadow-2">'.
'<div class="text-center mb-5 caption">Lorem Ipsum</div>'.
'<div class="mb-3">'. $args = array(
'<label for="zayvkaName" class="form-label">Ваше имя</label>'. 'id_form'=>'form_'.$atts['id'],
'<input type="text" class="form-control form-control-lg rounded-4 border-0" id="zayvkaName" required="required" />'. 'fields'=>array(
'</div>'. 'author' => '<div class="mb-3">'.
'<div class="mb-5">'. '<label for="author_'.$atts['id'].'" class="form-label">Ваше имя</label>'.
'<label for="zayvkaPhone" class="form-label">Телефон</label>'. '<input type="text" class="form-control form-control-lg rounded-4 border-0" name="author" id="author_'.$atts['id'].'" value="" size="30" required/>'.
'<input type="text" class="form-control form-control-lg rounded-4 border-0" id="zayvkaPhone" name="phone" required="required" />'. '<div class="invalid-feedback">Пожалуйста, укажите Ваше имя</div>'.
'</div>'. '</div>',
'<div class="mb-5 form-check ps-0">'. 'phone' => '<div class="mb-5">'.
'<input class="form-check-input d-none" type="checkbox" value="" id="fenix-accept-opr" checked="checked" />'. '<label for="phone_'.$atts['id'].'" class="form-label">Телефон</label>'.
'<label class="form-check-label text-color-10" for="fenix-accept-opr">Согласен на обработку<br/> персональных данных </label>'. '<input type="text" class="form-control form-control-lg rounded-4 border-0" name="phone" id="phone_'.$atts['id'].'" value="" required />'.
'</div>'. '<div class="invalid-feedback">Пожалуйста, укажите телефон</div>'.
'<button class="btn btn-lg btn-style-1 rounded-pill mx-auto w-100" type="submit" role="submit">Lorem Ipsum</button>'. '</div>',
'</form>'. 'cookies' => '<div class="mb-5 form-check ps-0">'.
'<input type="checkbox" name="accept" class="form-check-input d-none" id="accept_'.$atts['id'].'" value="accept" required="required" checked="checked"/>'.
'<label class="form-check-label" for="accept_'.$atts['id'].'">Согласен на обработку<br/> персональных данных</label>'.
'<div class="invalid-feedback">Вы должны принять перед отправкой</div>'.
'</div>'
),
'comment_field' => '<input type="hidden" name="comment" id="comment_'.$atts['id'].'" value="'.time().'"/>',
'class_submit'=>'btn btn-lg btn-style-1 rounded-pill mx-auto w-100',
'submit_field'=>'%1$s %2$s',
'submit_button'=> '<button name="%1$s" type="submit" class="%3$s" value="%4$s" id="%2$s">Отправить заявку</button>',
'id_submit'=>'submit_'.$atts['id'],
'comment_notes_before' => '<div class="text-center mb-5 caption">Обратная связь</div>',
'title_reply'=> ''.
'<div class="form-preloader align-items-center justify-content-center d-flex d-none text-center position-absolute top-0 bottom-0 start-0 end-0 m-auto" style="z-index:1; background-color: rgba(255,255,255,0.8)">'.
'<div class="spinner-border" role="status">'.
'<span class="visually-hidden">Обработка...</span>'.
'</div>'.
'</div>',
'title_reply'=>'',
'title_reply_before'=>'',
'title_reply_after'=>'',
'class_form'=>'needs-validation text-start mx-auto me-md-0 rounded-4 text-color-1 bg-custom-9 shadow-2 ajax-submit'
);
ob_start();
comment_form($args, url_to_postid('main'));
$out.=ob_get_clean();
$out.= ''.
'</div>'. '</div>'.
'</div>'. '</div>'.
'</div>'. '</div>'.
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
<?php <?php
while ( have_posts() ) : while ( have_posts() ) :
the_post(); the_post();
if ( !is_front_page() && has_post_format( 'aside' ) ) if ( !is_front_page() || has_post_format( 'aside' ) || get_post_type()=='page' )
echo '<div class="container">'. echo '<div class="container">'.
'<div class="row">'. '<div class="row">'.
'<div class="col-12">'. '<div class="col-12 py-4">'.
'<h1 class="text-center text-md-start">'.get_the_title().'</h1>'; '<h1 class="text-center text-md-start">'.get_the_title().'</h1>';
the_content(); the_content();
if ( !is_front_page() && has_post_format( 'aside' ) ) if ( !is_front_page() || has_post_format( 'aside' ) || get_post_type()=='page' )
echo '</div>'. echo '</div>'.
'</div>'. '</div>'.
'</div>'; '</div>';
......
<?php
get_header();
global $post;
?>
<!--Контент страницы-->
<content class="content page_<?php echo $post->post_name; ?>">
<?php
/* Start the Loop */
while ( have_posts() ) :
the_post();
if ( has_post_format( 'aside' ) )
echo '<div class="container">'.
'<div class="row">'.
'<div class="col-12">'.
'<h1 class="text-center text-md-start">'.get_the_title().'</h1>';
the_content();
if ( has_post_format( 'aside' ) )
echo '</div>'.
'</div>'.
'</div>';
?>
<?php
endwhile; // End of the loop.
?>
<!--Форма отзывов-->
<div class="review-form">
<div class="container py-4">
<h2 class="h1 text-center text-md-start">Обратный звонок</h2>
<?php
$args = array(
'id_form'=>'form_backvoices_big',
'fields'=>array(
'author' => '<div class="form-floating mb-3" style="order:-2;">'.
'<input type="text" class="form-control form-control-lg rounded-4 border-0" name="author" id="author_full" placeholder="Ваше имя" value="" size="30" required/>'.
'<label for="author_full" class="form-label">Ваше имя:</label>'.
'<div class="invalid-feedback">Пожалуйста, укажите имя пользователя</div>'.
'</div>',
'phone' => '<div class="form-floating mb-3" style="order:-1;">'.
'<input type="text" class="form-control form-control-lg rounded-4 border-0" name="phone" id="phone_full" placeholder="Номер телефона" value="" required />'.
'<label for="phone_full" class="form-label">Номер телефона:</label>'.
'<div class="invalid-feedback">Пожалуйста, укажите телефон</div>'.
'</div>',
'cookies' => '<div class="mb-3 form-check ps-0" >'.
'<input type="checkbox" name="accept" class="form-check-input d-none" id="accept_full" value="accept" required="required" checked="checked"/>'.
'<label class="form-check-label" for="accept_full">'.
'<span>Я даю согласие на <a href="'.get_permalink( get_page_by_path( 'privacy-policy' ) ).'" class="text-blue">обработку персональных данных</a>.</span>'.
'</label>'.
'<div class="invalid-feedback">Вы должны принять перед отправкой</div>'.
'</div>',
//'email' => '<input id="email" name="email" type="hidden" value="' . esc_attr( $commenter['comment_author_email'] ) . '" />'
),
'comment_field' => '<div class="form-floating mb-3" >'.
'<textarea class="form-control form-control-lg rounded-4 border-0" placeholder="Комментарий" name="comment" id="comment_full" rows="8" aria-required="true" style="height: 100px" required></textarea>'.
'<label for="comment_full" class="form-label">Комментарий</label>'.
'<div class="invalid-feedback">Пожалуйста, введите комментарий</div>'.
'</div>',
'submit_button'=> '<button name="%1$s" type="submit" class="btn btn-lg btn-style-1 px-5 rounded-pill %3$s" value="%4$s" id="%2$s">Отправить</button>',
'comment_notes_before' => '',
'title_reply'=> ''.
'<div class="form-preloader align-items-center justify-content-center d-flex d-none text-center position-absolute top-0 bottom-0 start-0 end-0 m-auto" style="z-index:1; background-color: rgba(255,255,255,0.8)">'.
'<div class="spinner-border" role="status">'.
'<span class="visually-hidden">Обработка...</span>'.
'</div>'.
'</div>',
'class_form'=>'d-flex flex-column needs-validation ajax-submit'
);
?>
<div class="rounded-4 text-color-1 bg-custom-9 shadow-2 p-4">
<?php
comment_form($args, url_to_postid('backvoices'));
?>
</div>
</div>
</div>
</content>
<?php
get_footer();
\ No newline at end of file \ No newline at end of file
...@@ -469,30 +469,6 @@ Author: SANS ...@@ -469,30 +469,6 @@ Author: SANS
:root .fenix-shprics form .caption { :root .fenix-shprics form .caption {
line-height: 22px; line-height: 22px;
} }
:root .fenix-shprics .form-check-label {
font-size: 14px;
line-height: 17px;
}
:root .fenix-shprics .form-check-input+.form-check-label {
display: flex;
align-items: center;
cursor: pointer;
}
:root .fenix-shprics .form-check-input+.form-check-label:before {
content: '';
display: inline-block;
width: 44px;
height: 44px;
background-color: var(--color-0);
background-position: center center;
background-repeat: no-repeat;
border-radius: 13px;
margin-right: 15px;
pointer-events: none;
}
:root .fenix-shprics .form-check-input:checked+.form-check-label:before {
background-image: url('./assets/images/arrow_accept.svg');
}
:root .fenix-shprics .form-label { :root .fenix-shprics .form-label {
font-size: 18px; font-size: 18px;
line-height: 22px; line-height: 22px;
...@@ -754,4 +730,33 @@ Author: SANS ...@@ -754,4 +730,33 @@ Author: SANS
line-height: 17px; line-height: 17px;
} }
}
/*Форма обратной связи*/
:root .form-check-label {
font-size: 14px;
line-height: 17px;
}
:root .form-check-input+.form-check-label {
display: flex;
align-items: center;
cursor: pointer;
}
:root .form-check-input+.form-check-label:before {
content: '';
display: inline-block;
width: 44px;
height: 44px;
background-color: var(--color-0);
background-position: center center;
background-repeat: no-repeat;
border-radius: 13px;
margin-right: 15px;
pointer-events: none;
}
:root .form-check-input:invalid+.form-check-label:before {
border: solid 1px #FF0000;
}
:root .form-check-input:checked+.form-check-label:before {
background-image: url('./assets/images/arrow_accept.svg');
} }
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!