PHP-код, встроенный в страницу будет разбирать строку GET-запроса от API сервиса бронирования и, на основании данных из запроса, формировать сообщение о результате бронирования.
if ( $condition ) {
get_template_part( 'templates/thankyou' );
} else {
get_template_part( 'templates/common' );
}
the_content
add_filter( 'the_content', 'custom_content' );
function custom_content( $text ) {
$ads = '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1452282254312739" crossorigin="anonymous"></script>';
return $ads . $text;
}
if ( get_post_type() === 'post' ) {
return $ads . $text;
} else {
return $text . $ads;
}
jQuery(document).ready(function ($) {
$('a.tab').on('click', function (e) {
$.ajax({
type: 'POST',
url: wpz_ajax_obj.ajaxurl, // Путь к файлу admin-ajax.php
data: {
'action': 'wpz_ajax_request', // Событие к которому будем обращаться
'post_type': $(e.currentTarget).attr('data-type'), // Передаём тип записи
'security': wplb_ajax_obj.nonce, // Используем nonce для защиты
}
})
e.preventDefault();
});
});
wp_send_json_success()
function wpz_ajax_request() {
if ( isset( $_POST ) ) {
// Проверяем nonce, а в случае если что-то пошло не так, то прерываем выполнение функции
if ( !wp_verify_nonce( $_POST['security'], 'wpz-nonce' ) ) {
wp_die( 'Базовая защита не пройдена' );
}
// заказываем посты из базы
if ( isset( $_POST['post_type'] ) ) {
$args = array(
'post_type' => sanitize_text_field( $_POST['post_type'] ),
'posts_per_page' => 1,
);
$post_query = new WP_Query( $args );
if ( $post_query ) {
# если записи есть, возвращаем в wp_send_json_success() html-постов
} else {
# если записей нет, возвращаем в wp_send_json_success() информацию о том, что их нет
}
} else {
wp_send_json_error();
}
} // end if isset( $_POST )
wp_die();
}
register_post_type()
или Custom Post Type UI14:00 — 21:00; 11:00 — 21:00; 11:00 — 21:00; 11:00 — 21:00; 11:00 — 22:00; 09:00 — 22:00; 09:00 — 21:00
mon="14:00 — 21:00" tue="11:00 — 21:00" wed="11:00 — 21:00" thu="11:00 — 21:00" fri="11:00 — 22:00" sat="09:00 — 22:00" sun="09:00 — 21:00"
$html = str_get_html( get_the_content() );
$links = $html->find( 'a' );
foreach ( $links as $key => $link ) {
var_dump( $link->href );
}
unset( $html );
$link->outertext = '[link]' . $link->outertext . '[/link]';
wp_update_post()
get_field()
вторым параметром принимает $post_id — ID записи из которой брать данныеget_field($selector, [$post_id], [$format_value]);
the_field( 'header_title', 'option' );
woocommerce_page_title()
в файле archive-product.php, в этой функции есть одноименный фильтр. Вы можете изменить контент заголовка используя ACF, Carbon Fields или любую другую удобную вам логикуadd_filter( 'woocommerce_page_title', 'filter_function_name_7320' );
function filter_function_name_7320( $page_title ){
// filter...
return $page_title;
}
// устанавливаем роль и дату начала тестового периода
function set_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
// пишем в мету юзера текущее время
add_user_meta( $user_id, '_test_period_start_date', $current_date, true );
$user = new WP_User( $user_id );
// добавляем роль участника
$user->add_role( 'contributor' );
}
// проверка завершения тестового периода
function check_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
$user_id = get_current_user_id();
$test_period_start_date = get_user_meta( $user_id, '_test_period_start_date', true );
$user = new WP_User( $user_id );
// проверяем, что текущая дата больше тестового периода
if ( strtotime( $current_date ) > strtotime( $test_period_start_date . ' + 7 days' ) ) {
// убираем роль участника
$user->remove_role( 'contributor' );
}
}