add_action( 'rest_api_init', 'my_register_rest_route_function');
function my_register_rest_route_function() {
register_rest_route('get-user-info-from-server/v1', '/user/(?P<id>\d+)/subscriptions', array(
'methods' => 'GET',
'callback' => 'get_user_subscriptions',
'permission_callback' => '__return_true',
));
}
'subscription_product' => $subscription->get_product()->get_name(),
add_action( 'rest_api_init', 'register_rest_route');
function register_rest_route() {
register_rest_route('your_namespace/v1', '/user/(?P<id>\d+)/subscriptions', array(
'methods' => 'GET',
'callback' => 'get_user_subscriptions',
'permission_callback' => '__return_true',
));
}
$result = array_map(
function($subscription) {
// получить id заказа по order_key функцией wc_get_order_id_by_order_key($order_key)
$order_id = wc_get_order_id_by_order_key( $subscription->get_order_key() );
// получить заказ по id заказа
$order = wc_get_order($order_id);
// получить товары из заказа
$order_items = array_map(
function($item) {
return [
'product_id' => $item->get_product_id(),
'variation_id' => $item->get_variation_id(),
'product_name' => $item->get_name()
];
},
$order->get_items()
);
return [
'id' => $subscription->get_id(),
'version' => $subscription->get_version(),
'customer_id' => $subscription->get_customer_id(),
'status' => $subscription->get_status(),
'currency' => $subscription->get_currency(),
'date_created' => $subscription->get_date( 'date_created' ),
'next_payment' => $subscription->get_date( 'next_payment' ),
'date_end' => $subscription->get_date( 'end' ),
'date_trial_end' => $subscription->get_date( 'trial_end' ),
'payment_method' => $subscription->get_payment_method_title(),
'total' => $subscription->get_total(),
'discount_total' => $subscription->get_discount_total(),
'shipping_total' => $subscription->get_shipping_total(),
'order_key' => $subscription->get_order_key(),
'order_items' => $order_items
];
},
$users_subscriptions
);
register_rest_route( 'your_namespace/v1/user/(?P<id>\d+)/subscriptions', [
[
'methods' => WP_REST_Server::READABLE,
'callback' => 'your_callback_function',
'permission_callback' => '__return_true',
],
]);
function your_callback_function( WP_REST_Request $request ) {
$user_id = (int) $request->get_param('id');
// тут получаете всё что нужно по id пользователя...
return $result;
}
<div class="btn-remove" data-product-id="<?php echo $_product->get_id() ?>">x</div>
$('.btn-remove').each(function() {
$(this).on('click', function() {
// получили id товара из data-атрибута
let product_id = $(this).data('product-id');
// отправили ajax
$.ajax({
url: ajaxurl, // возможно у вас будет другой url
method: 'POST',
data: {
action: 'remove_product_from_cart', // название PHP-функции, которая обработает ajax
product_id // передали id товара
},
success: function() {
// удалить html-блок с товаром:
$('.product').remove();
}
});
});
});
add_action("wp_ajax_remove_product_from_cart", "remove_product_from_cart");
function remove_product_from_cart() {
$product_id = $_POST['product_id'];
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( $cart_item['product_id'] == $product_id ) {
WC()->cart->remove_cart_item( $cart_item_key );
}
}
wp_die();
}
add_filter( 'the_title', 'my_custom_product_title' );
function my_custom_product_title( $title, $post_id ) {
if( is_product() ) {
// получаем данные товара
$product = wc_get_product( $post_id );
// переписываем дефолтный title
$title = sprintf(
'В нашем интернет магазине вы можете приобрести %s толщиной %s и покрытием %s ...', // шаблон заголовка
$product->get_name(), // название товара
$product->get_weight(), // толщина
$product->get_attribute( 'your_attr_name' ), // атрибут по названию
// ... и т.д.
);
}
return $title;
}
http://www.site.ru/?utm_source={source}&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={position_type}.{position}&utm_term={keyword}
if (isset($_REQUEST['utm_source']) ) {
// ... показываем баннер
}