// ثبت endpoint تنظیمات در REST
add_action('rest_api_init', function() {
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/settings', [
'methods' => ['GET','POST'],
'permission_callback' => function() {
return current_user_can('manage_options');
},
'callback' => function( $request ) {
if ( $request->get_method() === 'GET' ) {
$settings = aiqa_lite_get_settings();
aiqa_log('AIQA_SETTINGS', 'Settings fetched via REST', ['user'=>get_current_user_id()]);
return [ 'success'=>true, 'data'=>$settings ];
} else {
$params = $request->get_json_params();
$errors = aiqa_lite_validate_settings($params);
if ( !empty($errors) ) {
aiqa_log('AIQA_SETTINGS', 'Settings validation failed', ['errors'=>$errors]);
return new WP_REST_Response([ 'success'=>false, 'errors'=>$errors ], 400);
}
$settings = aiqa_lite_update_settings($params);
aiqa_log('AIQA_SETTINGS', 'Settings updated via REST', ['user'=>get_current_user_id()]);
return [ 'success'=>true, 'data'=>$settings ];
}
},
]);
});
// WooCommerce: order-status
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/woo/order-status', [
'methods' => ['GET'],
'permission_callback' => function() {
return current_user_can('manage_woocommerce') || current_user_can('manage_aiqa');
},
'callback' => function( $request ) {
$order_id = $request->get_param('order_id');
// Placeholder: وضعیت واقعی سفارش در فاز بعدی تکمیل میشود
$data = [ 'order_id'=>$order_id, 'status'=>'(آزمایشی)' ];
aiqa_log('AIQA_WOO', 'Order status fetched', ['user'=>get_current_user_id(),'order_id'=>$order_id]);
return [ 'success'=>true, 'data'=>$data ];
},
]);
// WooCommerce: product-info
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/woo/product-info', [
'methods' => ['GET'],
'permission_callback' => function() {
return current_user_can('manage_woocommerce') || current_user_can('manage_aiqa');
},
'callback' => function( $request ) {
$product_id = $request->get_param('product_id');
// Placeholder: اطلاعات واقعی محصول در فاز بعدی تکمیل میشود
$data = [ 'product_id'=>$product_id, 'info'=>'(آزمایشی)' ];
aiqa_log('AIQA_WOO', 'Product info fetched', ['user'=>get_current_user_id(),'product_id'=>$product_id]);
return [ 'success'=>true, 'data'=>$data ];
},
]);
// Usage endpoint
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/usage', [
'methods' => ['GET'],
'permission_callback' => function() {
return current_user_can('view_aiqa_reports');
},
'callback' => function( $request ) {
// Placeholder: گزارش مصرف واقعی در فاز بعدی تکمیل میشود
$data = [ 'total_requests'=>0, 'total_tokens'=>0, 'period'=>'(آزمایشی)' ];
aiqa_log('AIQA_USAGE', 'Usage report fetched', ['user'=>get_current_user_id()]);
return [ 'success'=>true, 'data'=>$data ];
},
]);
// Export endpoint
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/export', [
'methods' => ['GET'],
'permission_callback' => function() {
return current_user_can('view_aiqa_reports');
},
'callback' => function( $request ) {
$format = $request->get_param('format') ?: 'csv';
// Placeholder: خروجی واقعی در فاز بعدی تکمیل میشود
$data = [ 'export'=>'(خروجی آزمایشی: پیادهسازی کامل در فاز بعدی)' ];
aiqa_log('AIQA_EXPORT', 'Export requested', ['user'=>get_current_user_id(),'format'=>$format]);
return [ 'success'=>true, 'data'=>$data ];
},
]);
// Chat endpoint
register_rest_route( defined('AIQA_LITE_REST_NAMESPACE') ? AIQA_LITE_REST_NAMESPACE : 'aiqa/v1', '/chat', [
'methods' => ['POST'],
'permission_callback' => function() {
return current_user_can('manage_aiqa');
},
'callback' => function( $request ) {
$params = $request->get_json_params();
$message = trim($params['message'] ?? '');
if ( !$message ) {
aiqa_log('AIQA_CHAT', 'Empty chat message', ['user'=>get_current_user_id()]);
return new WP_REST_Response([ 'success'=>false, 'error'=>'empty_message' ], 400);
}
// REST-only: will be proxied server-side in next phases
aiqa_log('AIQA_CHAT', 'Chat message received (no provider call)', ['user'=>get_current_user_id(),'msg'=>$message]);
return [ 'success'=>true, 'data'=>[ 'reply'=>'(پاسخ آزمایشی: پیادهسازی مدل در فاز بعدی انجام میشود)' ] ];
},
]);
Warning: Cannot modify header information - headers already sent by (output started at /home/arshiyanian/public_html/wp-content/plugins/aiqa-lite/includes/rest-core.php:1) in /home/arshiyanian/public_html/wp-includes/pluggable.php on line 1450
Warning: Cannot modify header information - headers already sent by (output started at /home/arshiyanian/public_html/wp-content/plugins/aiqa-lite/includes/rest-core.php:1) in /home/arshiyanian/public_html/wp-includes/pluggable.php on line 1453