2016-08-05 26 views
0

Ich entwickle ein WooCommerce Plugin kurz ist ein Plugin, das es dem Shop-Manager ermöglicht, Blöcke "Magento-Stil" für jede Produktseite zu definieren.Wordpress - add_filter | apply_fitlers

Beispiel: Für das Produkt X möchte ich den zugehörigen Produktblock sichtbar machen und für das Produkt Y möchte ich nur den Upsells Block und den Featured Products Block anzeigen.

Ich versuche einen Filter zu definieren, damit der Entwickler einige benutzerdefinierte Blöcke haken kann.

Ich habe die Klasse WC_Block_Loader

Weicht diese Codezeile in der Konstruktor-Methode hat:

$this->blocks = array() 
    $this->blocks = apply_filters('woocommerce_blocks_register', $this->blocks); 
    var_dump($this->blocks); //empty 

Im functions.php des Themas Stück Code unten:

function hook_my_custom_wc_blocks ($blocks) { 
     $blocks['WC_My_Custom_Block'] = get_template_directory().'/includes/blocks/block-my-custom-block.php'; 
     return $blocks; 
    } 

    add_filter('woocommerce_blocks_register', 'hook_my_custom_blocks', 10, 1); 

Ich denke das Problem ist, dass ich das Plugin mit der "plugins_loaded" Aktion initiiere und die functions.php läuft nach diesem Haken, aber ich bin mir nicht sicher.

Irgendwelche Vorschläge? Danke und fröhliche Programmierung.

Antwort

0

Ich löste das Problem, indem ich einfach den plugins_loaded-Hook in den init-Hook änderte.