if( esc_attr( $gateway->id ) !== 'тут ID метода хранящегося в мета поле оплаты для юзера' ) continue;
Может я не првильно объяснил... Имеется в виду, что например пользователь выбрал PayPal , при заказе у него будет отображатся вариант оплаты только PayPal , потом он например поменял на Карту , на следующий раз , при заказе , у него будет способо оплаты только Картой и тд.
add_action( 'wp_ajax_hello', 'f_hello' );
add_action( 'wp_ajax_nopriv_hello', 'f_hello' );
function f_hello() {
check_ajax_referer( 'wpp-string', 'security' );
$n = 1;
$sum = 0;
$error = [];
while ( $n <= 2 ) :
if ( ! empty( absint( $_POST['param1'] ) ) ) {
$sum += absint( $_POST[ 'param' . $n ] );
} else {
$error[] = sprintf( __( 'Param %d is Empty!', 'txt' ), $n );
}
$n ++;
endwhile;
if ( empty( $error ) ) {
wp_send_json_success( array( 'result' => $sum ) );
} else {
wp_send_json_error( array( 'result' => $error ) );
}
}
add_action( 'wp_enqueue_scripts', 'wpp_assets' );
function wpp_assets() {
wp_enqueue_script( 'ajax', get_template_directory_uri() . '/assets/js/script.js', array( 'jquery' ), '1.0.0', true );
wp_localize_script( 'ajax', 'WppAjax', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce( 'wpp-string' )
) );
}
jQuery(function ($) {
$(document).on('click', '#btn', function (e) {
e.preventDefault();
var $param1 = 10,
$param2 = 20,
$data = {
action: 'hello',
security: WppAjax.security,
param1: $param1,
param2: $param2
};
$.post(WppAjax.ajax_url, $data, function ($response) {
if ($response.success) {
alert($response.data.result);
} else {
// бла бла бла обработка ощшибок
}
});
});
})
add_filter( 'body_class', 'wpp_my_tax_slug_class' );
function wpp_my_tax_slug_class( $classes ) {
global $post;
$terms = get_the_terms( $post->ID, 'my_tax' );
if ( !empty($terms) ) {
foreach ($terms as $term) {
$classes[] = 'my_tax-' . $term->slug;
}
}
return $classes;
}
$extremes = wpp_get_extremes_price_in_product_cat( 55 ); // 55 - id категории товара
printf('минимальная цена %s, максимальная цена %s',$extremes->min_price ,$extremes->max_price );
'tax_query' => array(
array(
'taxonomy' => 'team_category',
'field' => 'id',
'terms' => array($category->term_id)
)
)
То есть по факту 2 различных интерфейса корзин, с разными полями для заполнения.
. Соответственно проверяете текущую роль пользователя и в соответствии с ней модифицируете поля через 'woocommerce_checkout_fields'
Обычным Ajax, для поиска в WP_Query() передаете в параметр 's' значение снятое в вашего инпута, делов на 15 минут