Veröffentlicht am

Touch Event im Safari mobile

Aus Gründen, die ich nicht kenne, reagiert der Safari auf iOS nicht auf den ersten Klick bzw. Touch, wenn ein EventHandler dafür definiert wird.

$('#selector').on('click', function (ev) { ... });

Leider schafft hier auch das Verwenden von touchevents, wie touchend oder touchstart keine Abhilfe.

Dieses Metatag löst das Problem allerdings:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
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

Mac Mini (late 2012) von externer SSD starten

Ich habe mich hinreißen lassen und, weil es eben ein Schnäppchen war, einen gebrauchten Mac Mini (i5, 2,5 GHz, 8 MB RAM, 500 GB HDD) gekauft.
Nach all den Jahren mit SSD war es doch ein kleiner Schock, wie sich die langsame HDD auf mein Gemüt auswirkt. Vor allem das erste Laden von Programmen glich einer emotionalen Folter.

Nachdem ich einen einzigen passenden Erfahrungsbericht im Netz fand, kaufte ich kurzerhand eine externe SSD, formatierte sie entsprechend mit dem Journaled File System und installierte das Mojave darauf.
Alles in der Hoffnung, dass das Gerät danach einen Geschwindigkeitsrekord – naja – wenigstens versucht.

Klar hätte man auch eine interne SSD verwenden können, nur war mir der Umbau selbst zu heikel, ganz zu schweigen von dem fehlenden Werkzeug. Und der Einbau bei Drittanbietern kostete mir schlicht zuviel Geld. (SSD + Einbau waren meist knapp unter 200 €)

Und?

Und schon beim Starten merkt man, wie unfassbar viel diese SSD bringt. Wohlgemerkt extern über USB 3.0 angeschlossen, d.h. sie entfaltet ihre volle Wirkung nicht mal, stellt mich aber 100% zufrieden.
Ich hab derzeit nur das MacBook Air 2016 zum Vergleich, aber höchstens in Nuancen ist das etwas fixer als der Mac Mini. Und der hat letztlich nur 450,00 € gekostet – inkl. der externen SSD.