functions.php
9.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<?php
/**
* Определение функций темы
*
*
* @package WordPress
* @subpackage FenixMedicaCatheter
* @since FenixMedica 1.0
*/
//Подключаем шорткод Шприцы
include_once(__DIR__.'/inc/shprics.php');
//Подключаем шорткод ОПИСАНИЕ
include_once(__DIR__.'/inc/opisanie.php');
//Подключаем шорткод ПРЕИМУЩЕСТВА МЕТОДА
include_once(__DIR__.'/inc/preimushestvo.php');
//Подключаем шорткод Если Вам необходима
include_once(__DIR__.'/inc/man.php');
//Подключаем шорткод FAQ
include_once(__DIR__.'/inc/faq.php');
//Подключаем шорткод КОНТАКТЫ
include_once(__DIR__.'/inc/contacts.php');
//Подключение русурсок к страние
function action_enqueue_meta() {
//Подключение меты
//Стили
wp_enqueue_style( 'style', get_stylesheet_uri(), array(), filemtime(__DIR__.'/style.css') );
wp_enqueue_style( 'bootstrap.min', get_theme_file_uri('/assets/css/bootstrap/bootstrap.min.css'), array(), filemtime(__DIR__.'/assets/css/bootstrap/bootstrap.min.css') );
//Скрипты
wp_deregister_script( 'jquery' );
wp_enqueue_script('jquery.min', get_theme_file_uri('/assets/js/jquery/jquery.min.js'), array(), filemtime(__DIR__.'/assets/js/jquery/jquery.min.js'), true);
wp_enqueue_script('bootstrap.bundle.min', get_theme_file_uri('/assets/js/bootstrap/bootstrap.bundle.min.js'), array(), filemtime(__DIR__.'/assets/js/bootstrap/bootstrap.bundle.min.js'), true);
wp_enqueue_script('jquery.inputmask', get_theme_file_uri('/assets/js/jquery/jquery.inputmask.min.js'), array('jquery.min'),filemtime(__DIR__.'/assets/js/jquery/jquery.inputmask.min.js'), true);
wp_enqueue_script('script', get_theme_file_uri('/assets/js/script.js'), array('jquery.min'),filemtime(__DIR__.'/assets/js/script.js'), true);
}
add_action( 'wp_enqueue_scripts', 'action_enqueue_meta' );
//Правим ссылки в меню
function menu_filter_a( $atts, $item, $args, $depth ){
if ( !isset( $atts['class'] ) )
$atts['class'] = '';
if ($item->current || in_array('current-menu-ancestor', $item->classes) )
$atts['class'].=($atts['class']===''?'':' ').'active';
switch($args->theme_location)
{
case 'menu_up':
case 'menu_down':
$atts['class'].= ($atts['class']===''?'':' ').$args->link_class;
break;
}
return $atts;
}
add_filter( 'nav_menu_link_attributes', 'menu_filter_a', 10, 4 );
//Правим пункт в меню
function menu_filter_li( $classes, $item, $args, $depth ){
switch($args->theme_location)
{
case 'menu_up':
case 'menu_down':
$classes = array($args->list_item_class);
break;
}
return $classes;
}
add_filter( 'nav_menu_css_class', 'menu_filter_li', 10, 4 );
//Настройка темы
function action_setup_theme() {
//Включаем поддержку меню
add_theme_support( 'menus' );
//Автоматическая генеция тайтла
add_theme_support( 'title-tag' );
//Включение поддержки превью у постов
add_theme_support( 'post-thumbnails' );
//Сегрегация по типам поста
add_theme_support( 'post-formats', array( 'aside' ) );
register_nav_menus(
array(
'menu_up' => 'Шапка',
'menu_down' => 'Подвал',
)
);
}
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
}
*/