在woocommerce_get_price_html hook

时间:2016-12-21 21:47:21

标签: php wordpress woocommerce product price

我正在建立一个WooCommerce网站并对其进行自定义,复制和粘贴来自互联网图书馆的代码。

我设法在woocommerce产品中添加“自定义价格和自定义文字”,以便将它们翻译成不同的语言。以下是产品页面的外观:https://www.primacent.de/de/product/woo-album-3-2

以下是 functions.php

中的代码
//New Price
add_action('woocommerce_product_options_pricing','custom_unit_price');
function custom_unit_price() {
  woocommerce_wp_text_input( array( 'id' => '_unit_price', 'class' => 'wc_input_price short', 'label' => __( 'Unit Price', 'woocommerce' ) .    ' ('.get_woocommerce_currency_symbol().')', 'type' => 'number', 'desc_tip' => 'true','description' => __( 'Enter the unit price if you want to show this price type.', 'woocommerce' ), 'custom_attributes' => array(
                    'step'  => 'any',
                    'min'   => '0'
                ) ) );
}
add_action('woocommerce_process_product_meta_simple', 'save_custom_unit_price');
function save_custom_unit_price($post_id) {
    global $wpdb, $woocommerce, $woocommerce_errors;
    update_post_meta( $post_id, '_unit_price', stripslashes( $_POST['_unit_price'] ) );
}
// Text Field for unit measurement
add_action('woocommerce_product_options_pricing','custom_unit_measurement');
function custom_unit_measurement() {
woocommerce_wp_text_input ( array('id' => '_unit_measurement', 'label' => __( 'Unit Measurement', 'woocommerce' ), 'placeholder' => 'i.e: pro Stück','desc_tip' => 'true','description' => __( 'Enter the unit measurement in your language. If you want to show price per unit, this field must be filled', 'woocommerce' ) 
    )
);
}
add_action('woocommerce_process_product_meta_simple', 'save_custom_unit_measurement');
function save_custom_unit_measurement($post_id) {
    global $wpdb, $woocommerce, $woocommerce_errors;
    update_post_meta( $post_id, '_unit_measurement', stripslashes( $_POST['_unit_measurement'] ) );
}

// only copy the opening php tag if needed
// Change the shop / product prices if a _unit_price is set
function sv_change_product_html( $price_html, $product ) {

    $_unit_price = get_post_meta( $product->id, '_unit_price', true );
    if ( ! empty( $_unit_price ) ) {
        $price_html = '<span class="amount">' . wc_price( $_unit_price ).  '  </span>';
                      echo $_unit_measurement = get_post_meta( $product->id, '_unit_measurement', true );echo'<br />';      

    }

    return $price_html;
}

add_filter( 'woocommerce_get_price_html', 'sv_change_product_html', 10, 2 );

问题是我希望在单价(_unit_measurement)之后的单位测量(_unit_price)替换连字符' - '。

由于某些原因,我无法将第二个元值放入 <span> 换行。

请帮帮我。我怎样才能做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需在价格后使用 {{在字符串中(例如 <span> 标记内)连接此单位衡量值1}} 运算符,用于 .= 变量返回之前。

所以你的代码将是:

$price_html

代码进入活动子主题(活动主题或任何插件文件)的function.php文件中。