Veröffentlicht am

Woocommerce – Variationen im Warenkorb ändern

Im Zuge der Erweiterung eines Shops wünschte der Kunde auch, dass man variable Produkte direkt vom Warenkorb aus ändern kann. Sprich, dass die Variantenauswahl nicht nur auf der Produktdetailseite funktioniert, sondern auch im Warenkorb.

Hier gibt es nun jede Menge Plugins, die aufgrund strenger Restriktionen auf Kundenseite aber von vornherein aus dem Rennen waren.

Lange Rede, kurzer Sinn, der Warenkorb musste über die Session manipuliert werden. Hierfür wählte ich den Hook:

woocommerce_cart_loaded_from_session

Innerhalb der Funktion weise ich das gesamte Cart-Array einem leeren Array zu und zwar Item für Item. Die anzupassenden Werte ändere ich innerhalb dieses Loops und speichere das Array dann zurück.

add_action('woocommerce_cart_loaded_from_session', 'update_variations');
function update_variations() {
//array to collect updated items
$new_cart_items = [];

//loop through current cart item and reassign them to the new array
    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {      
      $new_cart_items[$cart_item_key] = WC()->cart->cart_contents[$cart_item_key];

      // add the new variation to the product (i get all values from session, where i saved them step before)
      $new_cart_items[$cart_item_key]['variation_id'] = WC()->session->get( 'variation_id' ); 
      $new_cart_items[$cart_item_key]['variation'][WC()->session->get( 'variation')] = WC()->session->get( 'variation_value' );    
     
     // IMPORTANT: empty the data_hash to avoid product to be deleted 
     $new_cart_items[$cart_item_key]['data_hash'] = "";
    }
}
Und wer noch einen Denkansatz braucht, wie man das Formular für die Variationen erstellt, der sollte daran denken, dass alle Variationen custom post types sind und das Produkt bzw. die Produkt-ID als post_parent enthalten.
Veröffentlicht am

Angular: ERROR Error: Uncaught (in promise): Error: StaticInjectorError […]StaticInjectorError[…] NullInjectorError: No provider for String!

Nachdem über einen Service ein Listenabruf von WP Posts über den HttpClient eingerichtet wurde, tauchte die im Titel angerissen Fehlermeldung auf, wobei der entscheidenen Hinweis jener ist:

Angular: ERROR Error: Uncaught (in promise): Error: StaticInjectorError […]StaticInjectorError[…] NullInjectorError: No provider for String! weiterlesen

Veröffentlicht am

Plugin für den Export von Jobs in die Stellenbörse der Arbeitsagentur

Für einen Kunden aus dem Bereich Recruiting habe ich, gemeinsam mit der Agentur Format78, ein Plugin umgesetzt, welches alle relevanten Daten eines Jobs der Stellenbörse der Arbeitsagentur erfasst, speichert und – in einer Schleife durch alle betroffenen Jobs – eine XML-Datei erstellt, die gegen das entsprechende HRBAXML Schema validiert ist.
Plugin für den Export von Jobs in die Stellenbörse der Arbeitsagentur weiterlesen