Hauptmenü

Werkzeuge

Kategorien

Archiv

Einhell

Custom Post Type

Erstellt in Wordpress am 25. November 2012 vom Daschmi

Im wpShopGermany Produktartikel Modul hatte ich das Problem dass die Produkte nicht über die URL erreichbar waren die mittels get_permalink() zurückgegeben wurden. Offenbar wird der Eintrag in der wp_options (rewrite_rules) nicht automatisch angepasst.

In Version 3.0.9 wird dies beim Speichern der Einstellungen des Produktartikel Moduls nachgeholt.

Wer auch das Problem hat kann es mit folgendem Befehl durchführen:

flush_rewrite_rules();

WordPress Sprache für eine Domain ändern

Erstellt in Allgemein am 22. November 2012 vom Daschmi

Im wpShopGermany ist es notwendig bestimmte Aktionen (Mail, Template und PDF Generierung) die Sprache des Backends zu ändern. Hat beispielsweise ein Kunde mit der Sprache Englisch bestellt, das Backend läuft aber in deutscher Sprache so werden normalerweise alle vom Backend ausgelösten Aktionen (Rechnung, Mail etc.) in der Sprache des Backends ausgeführt.

Um diesses Problem zu löscen wurde ab der Version 3.0.0 die Sprache während der Bestellung mitgespeichert. Damit nun im Backend die Sprache umgestellt werden kann wird vom wpShopGermany ab Version 3.0.9 die Übersetzung in der entsprechenden Sprache nachgeladen. Dies geschieht durch folgenden Aufruf:

load_textdomain('wpsg', dirname(__FILE__).'/../lang/wpsg-'.$locale.'.mo');

in der Variable $locale ist die Sprache während der Bestellung gespeichert (z.B. us_US)

Damit man nach der Aktion in der anderen Sprache wieder auf die Originalsprache wechseln kann sollte man die Übersetzung der Domain vorher sichern:

$old_l10n = clone $l10n['wpsg']; 

Die Variable $l10n ist dabei eine globale Variable. Das zurückschalten geschieht wie folgt:

$l10n['wpsg'] = clone $old_l10n;

Gutscheine mit dem wpShopGermany WordPress Plugin verkaufen

Erstellt in Allgemein am 19. November 2012 vom Daschmi

Heute wurde hier ein neues Modul veröffentlicht mit dem es möglich Gutscheine zu verkaufen. Die Gutscheine werden dann nach Zahlung in Form eines PDFs generiert und an den Käufer ausgeliefert.

Ein Tutorial und eine Beispielkonfiguration findet ihr hier.

array_merge ohne neuindexierung

Erstellt in PHP am 1. November 2012 vom Daschmi

array_merge arbeitet standardmäßig so, das numerische Schlüssel in dem zusammengefügten Array neu vergeben werden. Folgende Funktion verhindert dies auf simple Weise:


/**
* Array Merge und Indexe nicht neu nummerieren
* Siehe: http://de2.php.net/manual/de/function.array-merge.php#106803
*/
function dsr_array_merge($a, $b)
{

$result = array_diff_key($a, $b) + $b;

return $result;

} // function dsr_array_merge($a, $b)

wpShopGermany – Verlinkung zu den einzelnen Bestellschritten

Erstellt in Wordpress am 31. Oktober 2012 vom Daschmi

Ist in einer WordPress Instanz wpShopGermany installiert, so lässt sich mit folgenden Codebausteinen auf Shop relevante Seiten verlinken:

Warenkorbseite:

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_BASKET);

Warenkorbseite (Ohne Template, z.B. für Ajax Aufruf)

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_BASKET_AJAX);

Checkout (Eingabe der Kundendaten)

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_CHECKOUT);

Checkout2 (Auswahl der Zahlungs- Versandart)

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_CHECKOUT2);

Bestellzusammenfassung

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_OVERVIEW);

AGB Seite

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_AGB);

Versandkostenbestimmungen

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_VERSANDKOSTEN);

Datenschutzvereinbarung

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_VERSANDKOSTEN);

Widerrufsbelehrung

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_WIDERRUF);

Impressum

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_IMPRESSUM);

Profilseite

$GLOBALS[‚wpsg_sc‘]->getURL(wpsg_ShopController::URL_PROFIL);

Problem mit Hintergrund eines UITableView nach Update auf iOS Version 6

Erstellt in IPhone SDK am 28. September 2012 vom Daschmi

Bisher konnte der Hintergrund eines UITableViews mittels setBackgroundColor direkt gesetzt werden. Ab iOS Version 6 muss das dahinterlegene View gesetzt order entfernt werden. Folgender Code setzt den Hintergrund einer UITableView ab Versio6:

[[self tvConnections] setBackgroundColor:[app cBackground]];
[[self tvConnections] setBackgroundView:nil];

Verzeichnisse mit PHP rekursiv zippen

Erstellt in PHP am 22. September 2012 vom Daschmi

Um Verzeichnisse rekursiv zu einem Zip Archiv hinzuzufügen kann folgendes Script verwendet werden:

public function zipDir(&$zip, $dir, $base = “)
{
  if (!file_exists($dir));
  $arFiles = scandir($dir);

  foreach ($arFiles as $file)
  {

    if (in_array($file, array(‚.‘, ‚..‘))) continue;

    if (is_file($dir.’/‘.$file))
    {

      $zip->addFile($dir.’/‘.$file, $base.$file);

    }
    else if (is_dir($dir.’/‘.$file))
    {

      $zip->addEmptyDir($base.$file);
      zipDir($zip, $dir.’/‘.$file, $base.$file.’/‘);

    }
  }
}

Der Aufruf kann dann wie folgt aussehen:

$tmpzip = tempnam("/tmp", "wpShopGermany");

$zip = new ZipArchive;
$res = $zip->open($tmpzip, ZipArchive::CREATE);

// Verzeichnisse
zipDir($zip, ‚/var/home/htdocs/wpShopGermany/wp-content/uploads/wpsg_produktbilder‘, ‚wpsg_produktbilder/‘);

$zip->close();

header("Cache-Control: private");
header(‚Content-Type: application/download; charset=utf-8‘);
header(‚Content-Disposition: filename=wpsg_upgrade.zip‘);
header("Pragma: public");

session_cache_limiter(’nocache‘);

die(file_get_contents($tmpzip));

Das Zip Archiv würde dabei direkt als Download an den Browser übergeben werden.

Varianten, Variablen oder doch Attribute :?

Erstellt in Wordpress am 16. September 2012 vom Daschmi

Da die Verwendung von Varianten, Variablen, Attributen in wpShopGermany immer wieder Probleme machen möchte ich diese Funktionen hier noch einmal erläutern.

Varianten

Varianten dienen zur Definition von verschiedenen Produktvarianten die gekauft werden können. Hier ist es möglich für jede Variante einen einzelnen Preis zu definieren. Die Varianten werden dabei einfach zu bestehenden Produkten in der Produktverwaltung definiert. Zu jeder Variante kann ein Preis definiert werden, der Gesamtpreis ergibt sich dann aus dem Grundpreis des Produktes plus den Preisen der einzelnen ausgewählten Varianten.

Beispiel einer Variantenkonfiguration:

Im Frontend sieht das ganze dann wie hier gezeigt aus.

Variablen

Es gibt im wpShopGermany zwei Arten von Variablen, das wären die Bestellvariablen und die Produktvariablen. Variablen sind dabei Kundeneingaben, die während der Bestellung vom Kunden eingegeben werden. Bei Bestellvariablen handelt es sich um Eingaben die der Kunde einmal pro Bestellung macht und bei Produktvariablen sind es Eingaben die zu jedem bestelltem Produkt gemacht werden können. Die Produktvariablen werden dabei einmal pro bestellten Produkt erfasst, bestellt man also mehr als ein Produkt werden die Produktvariablen nur einmal für dieses Produkt abgefragt.

Bestellvariablen

Bestellvariablen müssen vor der Anwendung in den Moduleinstellungen des Bestellvariablen Moduls angelegt werden. Anschließend erscheinen sie im Shop direkt unter den Eingaben der Kundendaten.

Produktvariablen

Produktvariablen werden wie die Bestellvariablen in den Moduleinstellungen angelegt. Anschließend müssen sie noch bei den Produkten aktiviert werden wo sie angezeigt und abgefragt werden sollen.

Die Produktvariablen werden dann standardmäßig direkt im Produkt abgefragt. Wie das wpShopGermany WordPress Plugin die Produktvariablen abfragt wird hier demonstriert.

Produktattribute

Produktattribute sind einfach erweiterte Eigenschaften die vom Shop Betreiber zu allen Produkten optional angegeben werden können. Diese können dann über einen Code der im Backend generiert wird in die Produkttemplates eingebaut werden oder auch optional automatisch integriert werden. Die Produktattribute müssen im ersten Schritt in den Einstellungen des Moduls definiert werden, anschließend können sie in den Produkten mit Daten gefüllt werden.

Die Ausgabe im Frontend sieht standardmäßig wie hier aus, wenn die automatische Ausgabe aktiviert ist.

Nützliche Links zu wpShopGermany:

Verzeichnis mit relativer Pfadstruktur aus PHP heraus packen

Erstellt in Allgemein am 5. September 2012 vom Daschmi

Wer mit dem zip oder gzip Kommando ein Verzeichnis mit PHP packen möchte hat das Problem das die Pfade relative zu dem ausführenden Verzeichnis im Archiv angelegt werden. Auf der Konsole wechselt man einfach mit cd in das entsprechende Verzeichnis, in PHP gibt es dafür die chdir() Funktion.


chdir($targ_module_dir.’/‘.$m[‚modulname‘]);
exec(‚zip -qrT ./../../‘.$m[‚modulname‘].’_‘.$m[‚version‘].‘.zip wpshopgermany/*‘);