jQuery( document ).ready( function ( $ ) {
function mediaUploader( buttonClass ) {
// Trigger the Media Uploader dialog.
$( document ).on( 'click', buttonClass, function( e ) {
var mediaUploader;
form = $( buttonClass ).closest( 'form' )
// If the uploader object has already been created, reopen the dialog.
if ( mediaUploader ) {
mediaUploader.open();
return;
}
// Extend the wp.media object.
var mediaUploader = wp.media.frames.file_frame = wp.media( {
title: 'Select Image',
button: {
text: 'Select Image'
},
multiple: false,
library: {
type: 'image'
},
} );
// When a file is selected, grab the URL and set it as the text field's value.
mediaUploader.on( 'select', function () {
var attachment = mediaUploader.state().get( 'selection' ).first().toJSON();
form.find( '.image-upload' ).val( attachment.url );
form.find( '.media-image-container' ).empty();
form.find( '.media-image-container' ).append( '<img src="' + attachment.url + '" class="media-image" alt="Image Preview" style="max-width:100%;margin-bottom:10px" />' );
$( '.media-modal:visible' ).find( '.media-modal-close' ).trigger( 'click' );
} );
// Open the uploader dialog.
mediaUploader.open();
} );
}
// Initialize media uploader.
mediaUploader( '.button-add-adv-media' );
} );
<?php case 'image':
?>
<div class="media-widget-control">
<p>
<label for="<?php echo esc_attr( $this->get_field_id( $key ) ); ?>"><?php echo wp_kses_post( $setting['label'] ); ?></label><?php // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped ?>
<input class="widefat image-upload <?php echo esc_attr( $class ); ?>" id="<?php echo esc_attr( $this->get_field_id( $key ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $key ) ); ?>" type="hidden" value="<?php echo esc_attr( $value ); ?>" />
</p>
<div class="media-widget-preview">
<div class="media-image-container">
<?php if ( ! empty( $value ) ) : ?>
<img src="<?php echo esc_url( $value ) ; ?>" alt="Image Preview" style="max-width:100%;margin-bottom:10px" />
<?php endif; ?>
</div>
<div class="attachment-media-view">
<button type="button" class="select-media button-add-media button-add-adv-media not-selected"><?php esc_html_e( 'Add image', 'aesthetix' ); ?></button>
</div>
</div>
<?php if ( isset( $setting['desc'] ) ) : ?>
<small><?php echo esc_html( $setting['desc'] ); ?></small>
<?php endif; ?>
</div>
<?php
break;
Догадываюсь, что нужно бы прописать регуляркуДогадка объяснимая, но неверная, в конечном итоге.
А вот если в поле имейл вписать пару букв
В стандартных средствах как включить такую валидацию не нашел
//Добавляем фильтры
add_filter('wpcf7_validate_tel*', 'dco_wpcf7_validate', 10, 2);
add_filter('wpcf7_validate_email*', 'dco_wpcf7_validate', 10, 2);
add_filter('wpcf7_validate_text*', 'dco_wpcf7_validate', 10, 2);
add_filter('wpcf7_validate_textarea*', 'dco_wpcf7_validate', 10, 2);
function dco_wpcf7_validate($result, $tag) {
//Получаем объект тега
$tag = new WPCF7_Shortcode($tag);
//Получаем значение поля
$value = isset($_POST[$tag->name]) ? trim(wp_unslash(strtr((string) $_POST[$tag->name], "\n", " "))) : '';
//Указываем правила для тега с именем "your-name"
if ('your-name' == $tag->name) {
//Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
if ($tag->is_required() && '' == $value) {
$result->invalidate($tag, 'Укажите имя');
}
}
//Указываем правила для тега с типом "email"
if ('email' == $tag->basetype) {
//Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
if ($tag->is_required() && '' == $value) {
$result->invalidate($tag, 'Укажите верный электронный адрес');
//Если значение не пустое и не является корректным email-адресом — выводим сообщение об ошибке
} elseif ('' != $value && !wpcf7_is_email($value)) {
//Функция "wpcf7_get_message" выводит сообщения с вкладки "Уведомления при отправке формы" настроек формы
$result->invalidate($tag, wpcf7_get_message('invalid_email'));
}
}
//Указываем правила для тега с типом "tel"
if ('tel' == $tag->basetype) {
//Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
if ($tag->is_required() && '' == $value) {
$result->invalidate($tag, 'Укажите верный телефон');
//Если значение не пустое и не является корректным телефонным номером — выводим сообщение об ошибке
} elseif ('' != $value && !wpcf7_is_tel($value)) {
//Функция "wpcf7_get_message" выводит сообщения с вкладки "Уведомления при отправке формы" настроек формы
$result->invalidate($tag, wpcf7_get_message('invalid_tel'));
}
}
//Указываем правила для тега с именем "your-message"
if ('your-message' == $tag->name) {
//Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
if ($tag->is_required() && '' == $value) {
$result->invalidate($tag, 'Введите текст сообщения');
}
}
return $result;
}
transform: translatex()
).left: 50%;
) а transform просто двигает его "отражение" влево. Грубо говоря браузер фоткает ваш элемент, скрывает его и фотку двигает на нужное расстояние. Элемент то у вас в 2 строки - значит и на "фотке" он будет в 2 строки.get_post_meta()
update_post_meta()
uasort(
$array,
fn($item1, $item2) => ($item1['count'] ?? 0) <=> ($item2['count'] ?? 0)
);