我已经为简单的产品创建了这个字段,但我也需要处理可变的产品。这将在产品页面(WC后端)上创建一个自定义产品字段,文本保存为“RRP / MSRP”,代表建议零售价/制造商建议零售价。
价格将显示在产品页面上的产品价格上方。我的问题,正如已经解释的,是这只适用于简单的产品。我需要帮助使它适用于所有产品类型,但最重要的是-可变产品。
代码:
add_action( 'woocommerce_product_options_pricing', 'add_msrp' );
function add_msrp() {
woocommerce_wp_text_input( array(
'id' => 'msrp',
'class' => 'short wc_input_price',
'label' => __( 'RRP / MSRP', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',
'data_type' => 'price',
) );
}
add_action( 'save_post_product', 'save_msrp' );
function save_msrp( $product_id ) {
global $pagenow, $typenow;
if ( 'post.php' !== $pagenow || 'product' !== $typenow )
return;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( isset( $_POST['msrp'] ) ) {
if ( $_POST['msrp'] )
update_post_meta( $product_id, 'msrp', $_POST['msrp'] );
} else
delete_post_meta( $product_id, 'msrp' );
}
add_action( 'woocommerce_single_product_summary', 'display_msrp', 9 );
function display_msrp() {
global $product;
if ( $product->get_type() <> 'variable' && $msrp = get_post_meta( $product->get_id(), 'msrp', true ) ) {
echo '<div class="woocommerce_msrp">';
_e( 'RRP / MSRP: ', 'woocommerce' );
echo '<span class="msrp-price">' . wc_price( $msrp ) . '</span>';
echo '</div>';
}
}
有人能帮我吗?
1条答案
按热度按时间gopyfrb31#
你的代码是有点过时,因为WooCommerce 3+和一些其他的东西,如 meta_键插件用于自定义字段 (我已经在最后重温它)...
要处理来自可变产品的产品变体,请使用以下方法:
代码在你的活动子主题(或活动主题)的function.php文件中。
适用于所有其他产品。
以下是您重新访问的代码 (产品元键应始终以下划线开头):
代码在你的活动子主题(或活动主题)的function.php文件中。
类似:启用Woocommerce 3的批发价格