add files inc
This commit is contained in:
124
inc/add_adv_checked.php
Normal file
124
inc/add_adv_checked.php
Normal file
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
|
||||
// Регистрация метабокса и обработка сохранения
|
||||
add_action('add_meta_boxes', function() {
|
||||
// Метабокс для рекламного материала
|
||||
add_meta_box(
|
||||
'advertisement_meta_box',
|
||||
'Рекламный текст',
|
||||
function($post) {
|
||||
$is_advertisement = get_post_meta($post->ID, '_is_advertisement', true);
|
||||
wp_nonce_field('advertisement_nonce', 'advertisement_nonce_field');
|
||||
echo '<label><input type="checkbox" name="is_advertisement" value="1" ' . checked($is_advertisement, '1', false) . ' /> Это рекламная публикация</label>';
|
||||
},
|
||||
['anew', 'yellow', 'profile_article'],
|
||||
'side',
|
||||
'low'
|
||||
);
|
||||
|
||||
// Метабокс для Аэрофлота (только для profile_article)
|
||||
add_meta_box(
|
||||
'aeroflot_meta_box',
|
||||
'Лента Аэрофлота',
|
||||
function($post) {
|
||||
$no_aeroflot = get_post_meta($post->ID, '_no_aeroflot', true);
|
||||
wp_nonce_field('aeroflot_nonce', 'aeroflot_nonce_field');
|
||||
echo '<label><input type="checkbox" name="no_aeroflot" value="1" ' . checked($no_aeroflot, '1', false) . ' /> Не отправлять в Аэрофлот</label>';
|
||||
},
|
||||
['profile_article'], // Только для этого типа записей
|
||||
'side',
|
||||
'low'
|
||||
);
|
||||
});
|
||||
|
||||
add_action('save_post', function($post_id) {
|
||||
// Сохранение рекламного материала
|
||||
if (isset($_POST['advertisement_nonce_field']) && wp_verify_nonce($_POST['advertisement_nonce_field'], 'advertisement_nonce')) {
|
||||
if (!defined('DOING_AUTOSAVE') || !DOING_AUTOSAVE) {
|
||||
if (current_user_can('edit_post', $post_id)) {
|
||||
update_post_meta($post_id, '_is_advertisement', isset($_POST['is_advertisement']) ? '1' : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Сохранение настройки Аэрофлот (только для profile_article)
|
||||
if (isset($_POST['aeroflot_nonce_field']) && wp_verify_nonce($_POST['aeroflot_nonce_field'], 'aeroflot_nonce')) {
|
||||
if (!defined('DOING_AUTOSAVE') || !DOING_AUTOSAVE) {
|
||||
if (current_user_can('edit_post', $post_id)) {
|
||||
update_post_meta($post_id, '_no_aeroflot', isset($_POST['no_aeroflot']) ? '1' : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
add_action('admin_head', function() {
|
||||
echo '<style>
|
||||
/* Стили для рекламного метабокса - теплые тона */
|
||||
#advertisement_meta_box {
|
||||
background: linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%);
|
||||
border: 2px solid #ffb300;
|
||||
border-left: 4px solid #ffb300;
|
||||
}
|
||||
#advertisement_meta_box .hndle {
|
||||
background: #ffb300;
|
||||
color: white;
|
||||
border-bottom: 2px solid #ff8f00;
|
||||
font-weight: 600;
|
||||
}
|
||||
#advertisement_meta_box .hndle:before {
|
||||
content: "📢";
|
||||
margin-right: 8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
#advertisement_meta_box label {
|
||||
display: block;
|
||||
padding: 12px 0;
|
||||
font-weight: 600;
|
||||
color: #e65100;
|
||||
}
|
||||
|
||||
/* Стили для Аэрофлота - синие тона как в бренде */
|
||||
#aeroflot_meta_box {
|
||||
background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
|
||||
border: 2px solid #1565c0;
|
||||
border-left: 4px solid #1565c0;
|
||||
}
|
||||
#aeroflot_meta_box .hndle {
|
||||
background: #1565c0;
|
||||
color: white;
|
||||
border-bottom: 2px solid #0d47a1;
|
||||
font-weight: 600;
|
||||
}
|
||||
#aeroflot_meta_box .hndle:before {
|
||||
content: "✈️";
|
||||
margin-right: 8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
#aeroflot_meta_box label {
|
||||
display: block;
|
||||
padding: 12px 0;
|
||||
font-weight: 600;
|
||||
color: #0d47a1;
|
||||
}
|
||||
|
||||
/* Стили для чекбоксов */
|
||||
#advertisement_meta_box input[type="checkbox"],
|
||||
#aeroflot_meta_box input[type="checkbox"] {
|
||||
margin-right: 8px;
|
||||
transform: scale(1.2);
|
||||
}
|
||||
#advertisement_meta_box input[type="checkbox"]:checked {
|
||||
accent-color: #ffb300;
|
||||
}
|
||||
#aeroflot_meta_box input[type="checkbox"]:checked {
|
||||
accent-color: #1565c0;
|
||||
}
|
||||
|
||||
/* Выравнивание иконок */
|
||||
#advertisement_meta_box .hndle,
|
||||
#aeroflot_meta_box .hndle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>';
|
||||
});
|
||||
Reference in New Issue
Block a user