@bot.message_handler(commands=['addaccount'])
def addaccount(message):
<?php
/*
Plugin Name: User Info API / мой плагин для пполучения данных пользователя
Description: Adds a REST API endpoint to retrieve user information and subscriptions.
Version: 1.0
Author: Your Name
Author URI: Your Website
License: GPL2
*/
// Регистрация маршрута API
add_action( 'rest_api_init', 'register_rest_route');
function register_rest_route() {
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',
));
}
// Обработчик запроса API
function get_user_subscriptions($request) {
$result = array_map(
function($subscription) {
$user_id = $request->get_param('id');
$user_info = get_userdata($user_id);
$avatar_url = get_avatar_url($user_id);
$subscriptions = wcs_get_users_subscriptions($user_id);
// получить 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
);
return rest_ensure_response($result);
}
Fatal error: Cannot redeclare register_rest_route() (previously declared in /home/playpal.shop/public_html/wp-includes/rest-api.php:34) in /home/playpal.shop/public_html/wp-content/plugins/user-info-api/user-info-api.php on line 13
Notice: Функция is_embed вызвана неправильно. Условные теги не работают, пока не разобран запрос. До этого момента они всегда возвращают false. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 3.1.0.) in /home/playpal.shop/public_html/wp-includes/functions.php on line 5865
Notice: Функция is_search вызвана неправильно. Условные теги не работают, пока не разобран запрос. До этого момента они всегда возвращают false. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 3.1.0.) in /home/playpal.shop/public_html/wp-includes/functions.php on line 5865
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',
));
}
// Обработчик запроса API
function get_user_subscriptions($request) {
$user_id = $request->get_param('id');
$user_info = get_userdata($user_id);
$avatar_url = get_avatar_url($user_id);
$subscriptions = wcs_get_users_subscriptions($user_id);
$formatted_data = array(
'user_id' => $user_id,
'user_name' => $user_info->display_name,
'user_email' => $user_info->user_email,
'avatar_url' => $avatar_url,
'subscriptions' => array()
);
foreach ($subscriptions as $subscription) {
$formatted_data['subscriptions'][] = array(
'subscription_id' => $subscription->get_id(),
'subscription_status' => $subscription->get_status(),
'subscription_product' => $subscription->get_product()->get_name(),
'subscription_start_date' => $subscription->get_date('start'),
'subscription_end_date' => $subscription->get_date('end')
);
}
return rest_ensure_response($formatted_data);
}
add_action('get-user-info-from-server', function () {
register_rest_route('your_namespace/v1', '/user/(?P<id>\d+)/subscriptions', array(
'methods' => 'GET',
'callback' => 'get_user_subscriptions',
'permission_callback' => '__return_true',
));
});
// Обработчик запроса API
function get_user_subscriptions($request) {
$user_id = $request->get_param('id');
$user_info = get_userdata($user_id);
$avatar_url = get_avatar_url($user_id);
$subscriptions = wcs_get_users_subscriptions($user_id);
$formatted_data = array(
'user_id' => $user_id,
'user_name' => $user_info->display_name,
'user_email' => $user_info->user_email,
'avatar_url' => $avatar_url,
'subscriptions' => array()
);
foreach ($subscriptions as $subscription) {
$formatted_data['subscriptions'][] = array(
'subscription_id' => $subscription->get_id(),
'subscription_status' => $subscription->get_status(),
'subscription_product' => $subscription->get_product()->get_name(),
'subscription_start_date' => $subscription->get_date('start'),
'subscription_end_date' => $subscription->get_date('end')
);
}
return rest_ensure_response($formatted_data);
}
{"code":"rest_no_route","message":"\u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043b\u044f URL \u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d.","data":{"status":404}}