Не выводит то что должно
есть код, который должен выводить output переменную, но выводит совсем не понятно что
{
"success": true,
"message": "",
"data": {
"msorder": 80
}
}
if ($action == 'createOrder') {
$product_id = $_POST['product_id'];
$scriptProperties = array(
'json_response' => true,
'max_count' => 1000,
'allow_deleted' => false,
'allow_unpublished' => false
);
$miniShop2 = $modx->getService('miniShop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
$miniShop2->initialize($modx->context->key, $scriptProperties);
$output = [];
try {
$miniShop2->cart->clean();
$cart = $miniShop2->cart->add($product_id,1, ['size' => '']);
$order = $miniShop2->order->submit();
$output['success'] = true;
} catch (Exception $e) {
$output['success'] = false;
}
echo json_encode($output);
}
Комментарии: 1
Не должен. потому что, если ты посмотришь код метода $miniShop2->order->submit(), то увидишь, что в текущей конфигурации, он делает редирект. Если же ты сделаешь так
Можешь глянуть мою заметку
$ms2->order->config['json_response'] = true;
В этом случае редиректа не будет, но тво код всё равно ничего не вернёт, потому что всё в том же методе, вызывается функция die(), которая пресекает все твои чаяния на корню. Решение: расширить класс msOrderHandler и возвращать из него json. Можешь глянуть мою заметку
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.