Funktion funktioniert nicht auf dem Server. Der Rückgabewert der Funktion kann nicht im Schreibkontext verwendet werden

Lesezeit: 2 Minuten

Benutzer-Avatar
MidouCloud

Ich verwende diese Funktion, um zu prüfen, ob sich bestimmte Produkte im Warenkorb meines WooCommerce befinden. Dies funktioniert auf meinem Localhost, gibt mir aber Folgendes:

Der Rückgabewert der Funktion kann nicht im Schreibkontext verwendet werden

auf server.

function product_is_in_the_cart() {
$ids = array( '139, 358, 359, 360' );

$cart_ids = array();

// Find each product in the cart and add it to the $cart_ids array
foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
    $cart_product = $values['data'];
    $cart_ids[]   = $cart_product->id;
}

// Si uno de los productos introducidos en el array esta, devuelve false
if ( ! empty( array_intersect( $ids, $cart_ids ) ) ) {
    return true;
} else {
    return false;
}} 

Ich versuche, andere Methoden zu finden, um dies zu tun, aber ich kann keine Antwort auf mein Problem finden, ich denke, es liegt an empty(), aber wie kann ich das auf andere Weise machen?

  • Was ist mit der Verwendung von count?

    – Sugumar Venkatesan

    23. Dezember 2015 um 10:49 Uhr

Ich sehe, dass dies mit PHP 5.3 gekennzeichnet ist

In PHP-Versionen vor 5.5 leer() akzeptiert nur eine Variable. Sie müssen es zuerst wie folgt zuweisen:

$isEmpty = array_intersect($ids, $cart_ids);

if ( !empty($isEmpty) ) {
...
}

  • Dann Ihre Kreuzung zwischen $ids und $cart_ids nicht leer ist, müssen Sie sich das als nächstes ansehen.

    – danjam

    23. Dezember 2015 um 11:13 Uhr


Benutzer-Avatar
Ali

Aktualisieren Sie das PHP Ihres Servers.

Überprüfen Sie die PHP-Version auf Ihrem Computer und dem Server. wie im erwähnt Dokumentationin älteren Versionen konnten Sie die Variable nur übergeben.

Vor PHP 5.5 unterstützt empty() nur Variablen;

  • Das weiß ich bereits, deshalb habe ich nach einer alternativen Methode gefragt.

    – MidouCloud

    23. Dezember 2015 um 10:44 Uhr

  • Idealerweise sollten Sie Ihre PHP-Version aktualisieren, wenn dies nicht möglich ist, laden Sie eine Variable mit dem Ergebnis Ihrer Methode

    – Ali

    23. Dezember 2015 um 10:49 Uhr


Die Funktion funktioniert jetzt so:

function product_is_in_the_cart() {
global $woocommerce;
$items = array( '139, 240, 242, 358, 359, 360' );
// Create array from current cart
$cartitems = $woocommerce->cart->get_cart();
// Count items in cart
$itemcount = count( $cartitems );
        foreach($cartitems as $cartitem) {
            $productid = $cartitem[product_id];
            if(in_array($productid,$items)) {
                return true;
            } else 
            { 
                return false;
            }
        }
}

1352990cookie-checkFunktion funktioniert nicht auf dem Server. Der Rückgabewert der Funktion kann nicht im Schreibkontext verwendet werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy