php - Woocommerce:从插件获取一些自定义购物车项目数据值

标签 php arrays wordpress woocommerce cart

我正在尝试从购物车中的产品中获取特定值。 我需要这个值作为在特定类别中设置价格的乘数,我已经完成了大部分工作,除了我在获取这个值时遇到问题,这是我通过一个名为 uni-cpo 的插件设置的。

来自 var_dump(裁剪)

["_cpo_nov"]  =>   array(1) {
    ["uni_nov_cpo_stof_sqm"]=>
    array(2) {
       ["display_name"] => string(8) "stof_sqm"
       ["value"] => float(4) 2000
   }

我需要获取浮点值 2000,但我在导航数组时遇到问题。

add_action( 'woocommerce_before_cart', 'get_sqm', 99);
function get_sqm($length){
     global $woocommerce;
     $length = 0;
     foreach ($woocommerce->cart->cart_contents as $cart_item) {
         $item_id = $cart_item['6299'];
         if (isset($cart_item['data']->uni_nov_cpo_stof_sqm->uni_nov_cpo_stof_sqm->value)) {
             $length = $cart_item['data']->uni_nov_cpo_stof_sqm->uni_nov_cpo_stof_sqm->value;
             break;
         }
     }
     echo '<span class="hello">hello' . $length . '</span>';
    //Debug, comment to disable
    if (current_user_can('administrator') ) {
        echo '<pre>';
                var_dump( $cart_item );
            
        echo '</pre>';
    
    } //Debug end
     return $length;
 }

我不,对于我的代码的某些部分,我走在正确的轨道上,但在导航数组方面却偏离了正轨。如果有人可以提供帮助,为我指出正确的方向,或应用解决方案,我将永远感激不已。挣扎了好几个星期,才走到这一步。学习是一件非常痛苦的事! :)

最佳答案

根据裁剪后的 var_dump,要获得所需的值(2000),请尝试以下重新访问的代码:

add_action( 'woocommerce_before_cart', 'get_sqm', 99 );
function get_sqm() {
     $targeted_id = 6299;
     $length = 0;
     
     foreach (WC()->cart->get_cart() as $cart_item) {
         $product_id = $cart_item['product_id'];

         if ( isset( $cart_item['_cpo_nov']['uni_nov_cpo_stof_sqm']['value'] ) ) {
             $length = $cart_item['_cpo_nov']['uni_nov_cpo_stof_sqm']['value'];

             echo '<span class="hello">hello' . $length . '</span>';
             break;
         }
     }
     // return $length; // Not needed in an action hook
 }

代码位于事件子主题(或事件主题)的functions.php 文件中。它应该可以工作。

关于php - Woocommerce:从插件获取一些自定义购物车项目数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66515628/

相关文章:

PHP foreach 和引用资料

php - Wordpress 内联 CSS Fomr 短代码到全局变量

php - PHP 中的奇怪字符串

javascript - 创建基于表单选择的 Javascript 确认框 - PHP

arrays - Powershell:当数组中只剩下一个对象时如何正确计算对象数组中的项目数

arrays - 使用 C 从用户输入中提取句子

php - 如何从用 print_r 打印的数组的输出创建一个数组?

php - Wordpress 显示在条目页脚中阅读更多内容

html - <thead> 在移动版 WordPress 表格中没有响应

php - 通过 ajax 向 Controller 发送请求,从命名空间中删除斜杠?