English Version:
Hello everyone, we were also concerned with this issue during a recent setup and perhaps others are still looking for a working solution. We resolved it through integration with the Code Snippets plugin (https://de.wordpress.org/plugins/code-snippets/). We created two versions. The code of the first version integrates the supplier and the supplier SKU into the general WooCommerce hook Woocommerce_single_product_summary. The second version creates a shortcode that can be used to include both pieces of information (exclusively on the respective product page). Perhaps this function could be considered in a future plugin update, so that no additional code is necessary.
Version 1:
<?php
add_action( 'woocommerce_single_product_summary', 'display_atum_supplier_info', 25 );
function display_atum_supplier_info() {
global $product;
if ( ! is_a( $product, 'WC_Product' ) ) {
return;
}
$atum_product = \Atum\Inc\Helpers::get_atum_product( $product );
if ( ! $atum_product ) {
return;
}
// show supplier
$supplier_id = $atum_product->get_supplier_id();
if ( $supplier_id ) {
// Achten Sie darauf, dass hier 'atum_supplier' anstelle von 'supplier' verwendet wird
$supplier_post = get_post( $supplier_id );
if ( $supplier_post && $supplier_post->post_type === 'atum_supplier' ) {
echo '<p><strong>Supplier:</strong> ' . esc_html( $supplier_post->post_title ) . '</p>';
}
}
// show suppliers-SKU
$supplier_sku = $atum_product->get_supplier_sku();
if ( $supplier_sku ) {
echo '<p><strong>Supplier\'s SKU:</strong> ' . esc_html( $supplier_sku ) . '</p>';
}
}
Version 2 (Shortcode=[atum_supplier_info]):
<?php
function atum_supplier_info_shortcode() {
global $product;
if ( ! is_a( $product, 'WC_Product' ) ) {
return 'This shortcode is only available on product pages.';
}
$atum_product = \Atum\Inc\Helpers::get_atum_product( $product );
if ( ! $atum_product ) {
return 'No ATUM product data available.';
}
$output = '';
// show supplier
$supplier_id = $atum_product->get_supplier_id();
if ( $supplier_id ) {
$supplier_post = get_post( $supplier_id );
if ( $supplier_post && $supplier_post->post_type === 'atum_supplier' ) {
$output .= '<p><strong>Supplier:</strong> ' . esc_html( $supplier_post->post_title ) . '</p>';
}
}
// show suppliers-SKU
$supplier_sku = $atum_product->get_supplier_sku();
if ( $supplier_sku ) {
$output .= '<p><strong>Supplier\'s SKU:</strong> ' . esc_html( $supplier_sku ) . '</p>';
}
return $output;
}
add_shortcode( 'atum_supplier_info', 'atum_supplier_info_shortcode' );
German Version: Hallo zusammen, uns hat das ganze bei einer aktuellen Aufsetzung auch beschäftigt und vielleicht suchen ja noch mehr nach einer funktionierenden Lösung. Wir haben das ganze über eine Einbindung über das Code Snippets Plugin (https://de.wordpress.org/plugins/code-snippets/) gelöst. Wir haben zwei Versionen erstellt. Der Code der ersten Version bindet den Lieferanten und die Lieferanten SKU in der Allgemeinen Woocommerce Hook Woocommerce_single_product_summary ein. Die zweite Version erstellt einen Shortcode über den beide Angaben eingebunden werden können (Ausschlie0lich auf der jeweiligen Produktseite). Vielleicht kann die Funktion ja in einem zukünftigen Plugin Update berücksichtigt werden, so dass kein Zusatzcode mehr nötig ist.
Version 1:
<?php
add_action( 'woocommerce_single_product_summary', 'display_atum_supplier_info', 25 );
function display_atum_supplier_info() {
global $product;
if ( ! is_a( $product, 'WC_Product' ) ) {
return;
}
$atum_product = \Atum\Inc\Helpers::get_atum_product( $product );
if ( ! $atum_product ) {
return;
}
// Anzeige des Lieferanten
$supplier_id = $atum_product->get_supplier_id();
if ( $supplier_id ) {
// Achten Sie darauf, dass hier 'atum_supplier' anstelle von 'supplier' verwendet wird
$supplier_post = get_post( $supplier_id );
if ( $supplier_post && $supplier_post->post_type === 'atum_supplier' ) {
echo '<p><strong>Supplier:</strong> ' . esc_html( $supplier_post->post_title ) . '</p>';
}
}
// Anzeige der Lieferanten-SKU
$supplier_sku = $atum_product->get_supplier_sku();
if ( $supplier_sku ) {
echo '<p><strong>Supplier\'s SKU:</strong> ' . esc_html( $supplier_sku ) . '</p>';
}
}
Version 2 (Shortcode=[atum_lieferanten_info]) :
<?php
function atum_lieferanten_info_shortcode() {
global $product;
if ( ! is_a( $product, 'WC_Product' ) ) {
return 'This shortcode is only available on product pages.';
}
$atum_product = \Atum\Inc\Helpers::get_atum_product( $product );
if ( ! $atum_product ) {
return 'No ATUM product data available.';
}
$output = '';
// Anzeige des Lieferanten
$supplier_id = $atum_product->get_supplier_id();
if ( $supplier_id ) {
$supplier_post = get_post( $supplier_id );
if ( $supplier_post && $supplier_post->post_type === 'atum_supplier' ) {
$output .= '<p><strong>Hersteller:</strong> ' . esc_html( $supplier_post->post_title ) . '</p>';
}
}
// Anzeige der Lieferanten-SKU
$supplier_sku = $atum_product->get_supplier_sku();
if ( $supplier_sku ) {
$output .= '<p><strong>Hersteller SKU:</strong> ' . esc_html( $supplier_sku ) . '</p>';
}
return $output;
}
add_shortcode( 'atum_lieferanten_info', 'atum_lieferanten_info_shortcode' );