我正在尝试修改可变产品的产品页面上显示的SKU。SKU的格式为“text1.text2.text3”。文本可以包含所有字母和数字,长度可变。在产品页面上,我只想显示文本1。文本2作为SKU。
到目前为止,我在函数中包含了以下代码。我的主题php(Avada)。但是,SKU输出不变。你能给我一些建议吗?我不确定我使用的钩子是否正确。
add_action( \'avada_woocommerce_before_product_summary\', \'modifySKU\' );
function modifySKU( $atts )
{
global $product;
$atts = shortcode_atts( array( \'id\' => \'\', ), $atts );
// If there is no ID, we are already on a product page
if (empty( $atts[\'id\'] ) )
{
$sku = $product->get_sku();
// new array $output_array();
preg_match("/[^\\.]*\\.[^\\.]*/", $sku, $output_array);
$sku = reset($output_array);
return $sku;
}
}
最合适的回答,由SO网友:TheDeadMedic 整理而成
尝试使用核心WooCommerce筛选器woocommerce_get_sku
:
function wpse_188691_woocommerce_get_sku( $sku, $product ) {
if ( ! is_admin() ) {
$parts = explode( \'.\', $sku );
// Only first two parts
$parts = array_slice( $parts, 0, 2 );
// OR all parts except last (remove above)
// array_pop( $parts );
$sku = implode( \'.\', $parts );
}
return $sku;
}
add_filter( \'woocommerce_get_sku\', \'wpse_188691_woocommerce_get_sku\', 10, 2 );