【发布时间】:2019-08-21 03:50:07
【问题描述】:
对于简单的产品,我已经设法将这些组合在一起,但我也需要处理可变产品。这会在产品页面(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>';
}
}
有人可以帮我解决这个问题吗?
【问题讨论】:
-
请在询问时尝试以干净的方式正确格式化您的代码,因为问题和答案对所有访问者都有用,并且避免其他用户每次都格式化您的代码。谢谢你。此外,您应该在提问时提供更多上下文和解释,因为问题和答案对所有访问者都有用,您将有更多机会获得有用的答案。
-
@LoicTheAztec 理解,并感谢您编辑代码以使其他人可读。我也更新了这个问题。希望有人可以提供帮助。
标签: php wordpress woocommerce custom-fields variations