Categorie: WordPress


Fatale error met Shopp Cache Helper

Gepost op 20 januari om 14:00u, door famire | geen reacties

Een tijdje terug activeerde ik de Shopp Cache Helper plugin om Shopp met W3TC te kunnen gebruiken. Helaas lukte dat niet, vanwege een fatale error die ik kreeg:

Fatal error: Call to undefined method W3_Config::instance() in /…/wp-content/plugins/shopp-cache-helper/shopp-cache-helper.php on line 244

Ben toen gaan inspecteren wat er op die regel stond:

$config = W3_Config::instance();

Als testje er dit van gemaakt:

$config = new W3_Config;

En toen opnieuw geprobeerd. En toen werkte de plugin wel weer :-)

Ik weet niet of dit intussen ook is gewijzigd in de plugin, ik heb er 3 maanden geleden een topic over geopend op de WordPress forums, maar nooit een reactie op gehad.

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Adresgegevens in de account opslaan

Gepost op 17 januari om 14:00u, door famire | geen reacties

Een opdrachtgever van me wilde graag geen adres-velden op de checkout, maar alleen op de account-pagina. Op zich was dat niet zo heel erg moeilijk, velden toevoegen aan account.php en verborgen input-velden met de adresgegevens in checkout.php (Shopp vereist namelijk wel een adres tijdens de checkout).

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


CPT “moeder-pagina”

Gepost op 12 oktober om 14:00u, door famire | geen reacties

Bijna een half jaar geleden heb ik op WordPress.org een idee ingestuurd: om een moeder-pagina te kunnen selecteren voor je custom post types, net zoals je voor je posts kan doen (als je een afwijkende pagina voor je posts wilt gebruiken).

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Verwijder deactivatie link voor specifieke plugins

Gepost op 16 september om 10:06u, door famire | geen reacties

Ik heb m’n RSS feeds te lang niet bekeken en ben ze nu een beetje aan het doorspitten. In een van de WordPress-gerelateerde feeds kwam ik een erg interessant artikel tegen over hoe je voor bepaalde plugins het deactiveren als het ware kunt uitschakelen. Erg handig als je een website oplevert die bepaalde plugins echt nodig heeft en je opdrachtgever wel graag plugins wil kunnen activeren/deactiveren.

Het originele artikel (van 29 augustus jl.) staat op WordPress for Beginners: How to Disable Plugin Deactivation from WordPress Admin Panel.

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Shopp en iDEAL via banken

Gepost op 12 september om 14:00u, door famire | geen reacties

Zoals je misschien al wist ben ik sinds 2009 op zoek naar een partij die iDEAL via de banken voor Shopp zou kunnen maken. Heb toen mensen in mijn netwerk gevraagd en een project op Freelance.nl gezet: niks gevonden.

Via ideal-checkout.nl geprobeerd, maar dan zou ik honderden euro’s moeten betalen voor een betaalmethode die ik zelf niet zou mogen verkopen. Ze vinden daar namelijk dat Shopp geen open source is (blijkbaar kennen ze de definitie van open source niet), dus moet er voor betaald worden.

Maar nu is de dag dan toch daar! Elephant CS heeft een iDEAL plugin geschreven die geïntegreerd kan worden met Shopp. Je heb hier dan een iDEAL abonnement van een van de volgende banken voor nodig:

  • ABN Amro
  • Rabobank
  • ING Bank
  • Friesland Bank

Twee type licenties

Elephant CS hanteert twee type licenties voor de iDEAL plugin:
  • Single Site (€27,-)
  • Developer (€127,-)
Is iDEAL via Mollie of Sisow (voorheen AssurePay) dus niets voor jou (omdat de kosten te hoog zijn) dan kun je nu dus ook iDEAL via de bank gebruiken met Shopp!
  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Maatwerk product aan winkelwagen toevoegen

Gepost op 28 juli om 11:06u, door famire | 8 reacties

Het kan voorkomen dat je Shopp wilt gebruiken voor de afhandeling van de bestelling/betaling, maar dat je de daadwerkelijke producten niet (allemaal) als product wilt toevoegen. In zo’n geval is het natuurlijk handig om te weten hoe je producten via PHP in de winkelwagen krijgt.

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Vertraging in launch Shopplugin.nl

Gepost op 27 juli om 14:55u, door famire | 2 reacties

Een paar weken terug publiceerde ik de post over Shopplugin.nl, een eigen nieuw project. Helaas is die site nog niet online en het zal waarschijnlijk wel een paar weken gaan duren.

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Een nieuw project: Shopplugin.nl

Gepost op 1 juli om 09:00u, door famire | geen reacties

De afgelopen paar weken ben ik druk bezig geweest met een nieuwe (eigen) project: Shopplugin.nl. In deze webshop kun je terecht voor uitbreidingen voor je Shopp webshop.
  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Code in posts hersteld

Gepost op 22 juni om 20:16u, door hiranthi | geen reacties

Een tijdje terug heb ik deze site van een losstaande WordPress installatie naar een Multisite omgeving verhuisd. Na die verhuizing kwam ik er achter dat alle code tussen de pre-tags uit was gestript en alle tutorial posts dus eigenlijk gewoon waardeloos waren.
  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »


Elke taal een eigen sidebar

Gepost op 18 mei om 14:00u, door famire | geen reacties

Als je WPML gebruikt in een WordPress website met sidebars, dan wil je die sidebars ook graag mee veranderen als de bezoeker een andere taal selecteert. Om dit te realiseren zul je voor elke taal een eigen sidebar aan moeten maken. Nou kun je natuurlijk de code daarvoor vast in de functions.php zetten, maar als jij (of je opdrachtgever etc.) op een later tijdstip besluit om een taal toe te voegen of te verwijderen, dan moet dit ook handmatig gebeuren.

Dynamische sidebars per taal

Het makkelijkst is dus om sidebars dynamisch aan te laten maken op basis van de talen die geactiveerd zijn. Dat doe je met de volgende code:
<?php

/*
 Register sidebars
*/
if ( function_exists('register_sidebars') )
{
    // WPML is active
    if ( function_exists('icl_get_languages') )
    {
        foreach ( icl_get_languages('skip_missing=0&orderby=name&order=asc') as $lang )
        {
            register_sidebar( array(
                'name'          => __(sprintf('%s Sidebar',strtoupper($lang['language_code']))),
                'id'            => 'sidebar-'.$lang['language_code'],
                'before_widget' => '<li id="%1$s">',
                'after_widget'  => '</li>',
                'before_title'  => '<h4>',
                'after_title'   => '</h4>'
            ) );
        }
    }
    // WPML is not active
    else
    {
        register_sidebar( array(
            'name'          => __('Sidebar'),
            'id'            => 'sidebar-default',
            'before_widget' => '<li id="%1$s">',
            'after_widget'  => '</li>',
            'before_title'  => '<h4>',
            'after_title'   => '</h4>'
        ) );
    } // end if/else
} // end if

?>
Met bovenstaande code zorg je ervoor dat er een standaard sidebar wordt aangemaakt als er geen talen actief zijn.

Meerdere sidebars

Gebruik je meerdere sidebars en wil je die allemaal vertalen? Dan herhaal je de code binnen in de foreach (de register_sidebar functie dus) en maak je de benodigde wijzigingen (naam & ID van de sidebar). Een voorbeeldje van meerdere sidebars vertalen (een standaard sidebar en eentje voor de blogs):
<?php

/*
 Register sidebars
*/
if ( function_exists('register_sidebars') )
{
    // WPML is active
    if ( function_exists('icl_get_languages') )
    {
        foreach ( icl_get_languages('skip_missing=0&orderby=name&order=asc') as $lang )
        {
            register_sidebar( array(
                'name'          => __(sprintf('%s Sidebar | Default',strtoupper($lang['language_code']))),
                'id'            => 'sidebar-default-'.$lang['language_code'],
                'before_widget' => '<li id="%1$s">',
                'after_widget'  => '</li>',
                'before_title'  => '<h4>',
                'after_title'   => '</h4>'
            ) );

            register_sidebar( array(
                'name'          => __(sprintf('%s Sidebar | Blog',strtoupper($lang['language_code']))),
                'id'            => 'sidebar-blog-'.$lang['language_code'],
                'before_widget' => '<li id="%1$s">',
                'after_widget'  => '</li>',
                'before_title'  => '<h4>',
                'after_title'   => '</h4>'
            ) );
        }
    }
    // WPML is not active
    else
    {
        register_sidebar( array(
            'name'          => __('Sidebar | Default'),
            'id'            => 'sidebar-default',
            'before_widget' => '<li id="%1$s">',
            'after_widget'  => '</li>',
            'before_title'  => '<h4>',
            'after_title'   => '</h4>'
        ) );

        register_sidebar( array(
            'name'          => __('Sidebar | Blog'),
            'id'            => 'sidebar-blog',
            'before_widget' => '<li id="%1$s">',
            'after_widget'  => '</li>',
            'before_title'  => '<h4>',
            'after_title'   => '</h4>'
        ) );
    } // end if/else
} // end if

?>

Sidebar laden

Nou heb je natuurlijk niet zo heel veel aan vertaalde sidebars als je niet ook de juiste sidebar kan laden op de site. Open je sidebar.php en vervang de huidige code om de dynamische sidebar op te halen met de volgende code:
<?php

if ( function_exists('dynamic_sidebar') )
{
    // WPML is active
    if ( function_exists('icl_get_languages') )
    {
        // only load sidebar if it is active
        if ( is_active_sidebar('sidebar-'.ICL_LANGUAGE_CODE) ) dynamic_sidebar('sidebar-'.ICL_LANGUAGE_CODE);
    }
    // WPML is not active
    else
    {
        dynamic_sidebar('sidebar-default');
    }
}

?>
  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Lees de rest van dit bericht »