Ich versuche, ACF zu verwenden, um der Registerkarte „Zusätzliche Informationen“ für die Produkte in WooCommerce ein benutzerdefiniertes Attribut hinzuzufügen. Ich möchte, dass der Administrator ein PDF hochladen kann, das dann in der Tabelle auf der Registerkarte “Zusätzliche Informationen” eingestellt und verlinkt werden soll.
Genauer gesagt habe ich das Standard-Template für die Attribute im Plugin-Verzeichnis für WooCommerce gefunden woocommerce/templates/single-product/product-attributes.php
. So sieht die Vorlage aus. Ich kann einfach nur die setzen the_field("pdf")
dort, um das benutzerdefinierte Feld anzuzeigen, aber das Problem, auf das ich stoße, ist, dass die Registerkarte Zusätzliche Informationen nur angezeigt wird, wenn Attribute über WooCommerce hinzugefügt wurden.
Gibt es eine Möglichkeit, zusätzliche bedingte Tags hinzuzufügen, wann die Registerkarte „Zusätzliche Informationen“ angezeigt werden soll? Wenn ich irgendwie hinzufügen könnte if (get_field("pdf"))
zu diesem Code denke ich, dass dies gelöst werden würde.
Aktualisiert: In Woocommerce, wenn Abmessungen, Gewicht oder Produktattribute vorhanden sind (wird auf dem Produkt angezeigt) existieren, wird die Registerkarte „Zusätzliche Informationen“ angezeigt…
Also, wenn die Registerkarte ausgeblendet ist und Sie hinzugefügt haben single-product/product-attributes.php
Vorlage für ein benutzerdefiniertes Feld get_field("pdf")
Angezeigt werden das hat einen Wertdu kannst Erzwingen Sie, dass die Registerkarte “Zusätzliche Informationen” angezeigt wird mit:
add_filter( 'woocommerce_product_tabs', 'woo_customize_tabs', 100, 1 );
function woo_customize_tabs( $tabs ) {
if( ! isset($tabs['additional_information']) && null !== get_field("pdf") ){
$tabs['reviews']['priority'] = 30;
$reviews = $tabs['reviews'];
unset($tabs['reviews']);
$tabs['additional_information'] = array(
'title' => __( 'Additional information', 'woocommerce' ),
'priority' => '20',
'callback' => 'woocommerce_product_additional_information_tab',
);
$tabs['reviews'] = $reviews;
}
return $tabs;
}
Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.