Столкнулся со следующим, понадобилось вывести в определённом месте артикул товара (он же SKU), но используя этот хук "woocommerce_template_single_meta", выводятся так же теги и категории. Сделал следующее в файле wc-template-function после
if ( ! function_exists( 'woocommerce_template_single_meta' ) ) {
/**
* Output the product meta.
*
* @subpackage Product
*/
function woocommerce_template_single_meta() {
wc_get_template( 'single-product/meta.php' );
}
}
дописал
if ( ! function_exists( 'woocommerce_template_single_sku' ) ) {
/**
* Output the product meta.
*
* @subpackage Product
*/
function woocommerce_template_single_sku() {
wc_get_template( 'single-product/sku.php' );
}
}
как видите wc_get_template( 'single-product/meta.php' ); ссылается на meta, я взял этот meta, скопировал, переименовал и подправил, убрав оттуда категории и теги.
<?php
/**
* Single Product Meta Sku
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
* @editor "xXXx"
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
global $post, $product;
$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
?>
<div class="product_meta">
<?php do_action( 'woocommerce_product_meta_start' ); ?>
<?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>
<span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span></span>
<?php endif; ?>
<?php do_action( 'woocommerce_product_meta_end' ); ?>
</div>
В общем то всё заработало. Но так как я ещё новичек в wp и wc, подскажите правильно ли я поступил и не слетит ли всё при обновлении WC например и есть ли другой способ вывести SKU там где мне нужно?
p.s. Всё это изменял в plugin/woocommerce/....