Php 如何覆盖Woocomece购物车中的产品小计(行小计)价格?

Php 如何覆盖Woocomece购物车中的产品小计(行小计)价格?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我有定制产品,我已经在购物车中添加了产品,但这些产品应该是基于数量的计算。如何更改Woocomece中的产品小计价格。产品小计应覆盖我的价格。如何覆盖它。请检查我的以下代码 $values = array(); $post_values = array(); $i=0; foreach($_POST['post_quantity'] as $key =>$value){ $values[] = "('{$_POST['

我有定制产品,我已经在购物车中添加了产品,但这些产品应该是基于数量的计算。如何更改Woocomece中的产品小计价格。产品小计应覆盖我的价格。如何覆盖它。请检查我的以下代码

 $values = array();
         $post_values = array();
         $i=0;
    foreach($_POST['post_quantity'] as $key =>$value){

            $values[] = "('{$_POST['product_id'][$key]}', '{$_POST['post_quantity'][$key]}', 
            '{$_POST['product_price'][$key]}', 
            '{$_POST['product_duplicate_price'][$key]}',
            '{$_POST['product_description'][$key]}',
            '{$_POST['product_material'][$key]}')";


$wpdb->insert('wp_posts', array(
      'post_title'    => 'xxxx '.$_POST['quoted_sid'].'Quote ID: '.$_POST['quoted_sid'][$key].'  - Product ID: '.$_POST['product_id'][$key],
      'post_content'  => $_POST['product_description'][$key],
      'post_date' => date('Y-m-d H:i:s'),
      'post_status'   => 'publish',
      'post_author'   => 1,
      'post_type'     =>'product'
    ));
    $lastid[$i] = $wpdb->insert_id; 

            $date[$i] = date('Y-m-d H:i:s');

            //calculation for quantity 

                $regular_price =    
                $_POST['product_price'][$key] + $_POST['product_duplicate_price'][$key]*($_POST['post_quantity'][$key]-1);

             //$regular_price /$_POST['post_quantity'][$key];

            //echo number_format((float)$regular_price,2,'.','').'</br>';

        add_post_meta($lastid[$i], '_regular_price', number_format((float)$regular_price,2,'.',''));
        add_post_meta($lastid[$i], '_price', number_format((float)$_POST['product_price'][$key],2,'.',''));
        add_post_meta($lastid[$i],'_visibility','visible');

    add_post_meta($lastid[$i], '_stock_status', 'instock' );
    add_post_meta($lastid[$i], '_weight', '11' );
    add_post_meta($lastid[$i], '_sku', 'Quoted Stencil_'.$_POST['product_id'][$key] );
    add_post_meta($lastid[$i], '_duplicate_price', $_POST['product_duplicate_price'][$key] );
    add_post_meta($lastid[$i], '_material', $_POST['product_material'][$key] );

    $post_values['product_id'][] = $lastid[$i];
    $post_values['product_quantity'][] = $_POST['post_quantity'][$key];
    $i++;
    }

    //print_r($post_values);




        $j=0;



        foreach ( $post_values as $product_id ) {


$woocommerce->cart->add_to_cart( $post_values['product_id'][$j] ,$post_values['product_quantity'][$j],$cart_item_data);
            $j++;
        }
    //exit;

     exit( wp_redirect( home_url( "cart" ) ) );
$values=array();
$post_values=array();
$i=0;
foreach($\u POST['POST\u quantity']作为$key=>$value){
$values[]=“({$\u POST['product\u id'][$key]},{$\u POST['POST\u quantity'][$key]},”,
“{$\u POST['product\u price'][$key]}”,
“{$\u POST['product\u replicate\u price'][$key]}”,
“{$\u POST['product\u description'][$key]}”,
“{$_POST['product_material'][$key]}”;
$wpdb->insert('wp_posts',数组(
'post_title'=>'xxxx'.$_post['quoted_sid'.'Quote ID:'.$_post['quoted_sid'.[$key]。$_post['quoted_sid'.[$key]。-产品ID:'.$_post['Product_ID'.[$key],
“发布内容”=>$\u发布['product\u description'][$key],
“发布日期”=>日期(“Y-m-d H:i:s”),
“发布状态”=>“发布”,
“后作者”=>1,
“post_类型”=>“产品”
));
$lastid[$i]=$wpdb->insert_id;
$date[$i]=日期('Y-m-d H:i:s');
//数量计算
$正常价格=
$\u POST['product\u price'][$key]+$\u POST['product\u replicate\u price'][$key]*($\u POST['POST\u quantity'][$key]-1);
//$regular_price/$$u POST['POST_quantity'][$key];
//回音编号格式((浮动)$常规价格,2'.'',''。'
'; 添加后置元($lastid[$i],'u常规价格',数字格式((浮动)$regular价格,2',''); 添加贴子元($lastid[$i],'u price',数字格式((float)$贴子['product\u price'][$key],2,',''); 添加“post”meta($lastid[$i],“可见性”,“可见”); 添加后置元($lastid[$i],“‘库存状态’,‘库存’); 添加post meta($lastid[$i],'u weight','11'); 添加“\u post\u meta”($lastid[$i],“\u sku”,“引用的模具”$\u post['product\u id'][$key]); 添加贴子元($lastid[$i],“'u duplicate\u price',$”贴子['product\u duplicate\u price'][$key]); 添加贴子元($lastid[$i],“'u material',$”\u post['product\u material'][$key]); $post_值['product_id'][=$lastid[$i]; $post_值['product_quantity'][]=$post['post_quantity'][$key]; $i++; } //打印(后值); $j=0; foreach($product\U id形式的post\U值){ $WOOMerce->cart->add_to_cart($post_values['product_id'][$j],$post_values['product_quantity'][$j],$cart_item_data); $j++; } //退出; 退出(wp_重定向(主页url(“购物车”));
有一个名为“woocommerce\u cart\u subtotal”的过滤器。它是最终字符串(货币+小计+增值税文本)的过滤器。如果您有一些自定义小计计算,请将其注入此筛选器

首先测试它,确保它工作正常

add_filter('woocommerce_cart_subtotal','subtotalchanger',0);
function subtotalchanger($subtotal){
    return $subtotal.' - it worked';
}
如果一切正常,则将自定义计算放入此筛选器并返回您自己的小计:

add_filter('woocommerce_cart_subtotal','subtotalchanger',0);
function subtotalchanger($subtotal){
    //your own calculations based on cart products and their quantities
return $your_custom_subtotal
}

为什么退出(wp_重定向(home_url(“cart”))?您需要改用wp_重定向(home_url(“/cart”);exit();如何覆盖行小计。您想覆盖什么?更改小计价格还是什么?每个单独的产品总计更改产品行小计而不是购物车小计您可以添加一些关于您要更改的内容的屏幕截图吗?添加过滤器('woocommerce\u cart\u item\u price'、'on\u display\u cart\u item\u price\u html',100,3);这是我需要更改购物车行中每个和单个产品价格的函数