Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在商务预订中显示折扣价格_Php_Wordpress_Woocommerce_Hook Woocommerce_Woocommerce Bookings - Fatal编程技术网

Php 在商务预订中显示折扣价格

Php 在商务预订中显示折扣价格,php,wordpress,woocommerce,hook-woocommerce,woocommerce-bookings,Php,Wordpress,Woocommerce,Hook Woocommerce,Woocommerce Bookings,我想显示折扣价格(添加范围后的价格)以及可预订产品的基本价格 我正在做的是更改\woocommerce bookings\includes\adminclass-wc-bookings-ajax.php文件中的以下代码 // Build the output $before = $product->get_price(); $after = wc_price( $display_price ) ; $discount = $

我想显示折扣价格(添加范围后的价格)以及可预订产品的基本价格 我正在做的是更改\woocommerce bookings\includes\adminclass-wc-bookings-ajax.php文件中的以下代码

// Build the output
        
        $before = $product->get_price();
        $after = wc_price( $display_price ) ;
        $discount = $product->get_price() - wc_price( $display_price );
        $output = apply_filters( 'woocommerce_bookings_booking_cost_string', __( 'Booking cost', 'woocommerce-bookings' ), $product ) .$discount ': <strong>' .$discount . $price_suffix . '</strong>';
//生成输出
$before=$product->get_price();
$after=wc\U价格($display\U价格);
$discount=$product->get\u price()-wc\u price($display\u price);
$output=apply_过滤器('woocommerce_bookings_booking_cost_string','uu('booking cost','woocommerce bookings'),$product)。$discount':。$discount$价格后缀';

这是正确的方法还是您可以提出建议?

覆盖Woocommerce Bookings核心代码是您绝对不应该做的事情,原因有很多,我不打算解释

现在,正如您在源代码中看到的,开发人员添加了一个过滤器挂钩,允许您对
$output
变量进行更改

现在,WooCommerce可预订产品中没有任何折扣价格,就像WooCommerce上的其他产品一样

所以首先放回原始插件文件

然后您可以按如下方式使用过滤器(您将在其中添加自己的代码):


代码放在活动子主题(或活动主题)的functions.php文件中。

覆盖Woocommerce Bookings核心代码是绝对不应该做的事情,原因有很多,我不打算解释

现在,正如您在源代码中看到的,开发人员添加了一个过滤器挂钩,允许您对
$output
变量进行更改

现在,WooCommerce可预订产品中没有任何折扣价格,就像WooCommerce上的其他产品一样

所以首先放回原始插件文件

然后您可以按如下方式使用过滤器(您将在其中添加自己的代码):

代码进入活动子主题(或活动主题)的functions.php文件

add_filter( 'woocommerce_bookings_booking_cost_string', 'change_bookings_booking_cost_string', 10, 2 );
function change_bookings_booking_cost_string( $cost_string, $product ) {
    $raw_price       = $product->get_price();
    $display_price   = wc_get_price_to_display($product);
    $price_suffix    = $product->get_price_suffix();
    $formatted_price = wc_price($display_price) . $price_suffix;
    
    $additional_output = 'Here comes your code'; // Replace by your code variables 
    
    return $cost_string . ' ' . $additional_output; // Always return (never echo)
}