Я пытаюсь понять, как обновить URL-адрес, который я использую для синтаксического анализа XML (используя simplexml_load_file()).
Существует button, у которого есть $productid, который назначается ему пользователем при добавлении своего шорткода [show_cart_button productid=#].
//code for the button input that gets called
function print_add_cart_button($productid, $atts = array()) {
//some other form code for the button
$replacement .= '<input type = "hidden" name"cart_product" value"' . $productid . '"/>';
return $replacement;
}
Это function, который я использую для отображения и вызова информации о продукте:
function show_shopping_cart_handler($atts) {
if (isset($_POST['cart_product'])) {
$id = "&PRODUCTID = " . $_POST['cart_product'];
// uses the input name from the button
}
$url = "https://secure.bmtmicro.com/cart?CID=2/WP" . $id;
$xml = simplexml_load_file($url) or die("error.");
foreach ($xml->producttable->row as $product) {
$output .= '<span>' . $product->productname . '</span>';
}
return $output;
}
Чтобы URL-адрес работал правильно, в конце URL-адреса должен быть добавлен &PRODUCTID=(product#). Например, если вы нажмете две разные кнопки, URL-адрес должен выглядеть следующим образом: https://secure.bmtmicro.com/cart?CID=2/WP&PRODUCTID=1&PRODUCTID=2 (очевидно, 1 и 2 должны отображать номер кнопки $productid).
Как вы должны видеть из моего кода выше, каждый раз, когда нажимают на button, он просто перезаписывает URL-адрес и отображает этот один продукт вместо добавления нового в список. Я попытался установить simplexml_load_file() в foreach(), но при нажатии кнопки не отображались никакие продукты. Кто-нибудь знает, как я могу заставить этот URL-адрес обновляться / работать должным образом?






Каждый раз
if (isset($_POST['cart_product'])) {
$id = "&PRODUCTID = " . $_POST['cart_product'];
// uses the input name from the button
}
Вызывается перезапись $ id. Вам нужно получить любые существующие значения для URL-адреса.
Вам нужно будет получить все текущие значения ($ _GET ['cart_productions']), бросить их в массив, захватить новый пост, добавить его в массив и добавить все к ним URL с помощью http_build_query () .