首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告:为foreach() Wordpress (UMP)提供的无效参数

警告:为foreach() Wordpress (UMP)提供的无效参数
EN

Stack Overflow用户
提问于 2021-05-15 11:34:28
回答 1查看 157关注 0票数 1

有人能告诉我下面的代码出了什么问题才导致警告:为foreach()提供的无效参数。我该怎么解决呢?这是一个脚本,从终极会员专业插件‘游击手. the’。

代码语言:javascript
复制
    foreach ($data['custom_fields'] as $key => $value) {
        if (empty($data['custom_fields'][$key])){
            unset($data['custom_fields'][$key]);
        }
     }

     if (!empty($data['levels'])){

        $fullPath = IHC_PATH . 'public/views/membership_card.php';
        $searchFilename = 'membership_card.php';
        $template = apply_filters('ihc_filter_on_load_template', $fullPath, $searchFilename );
        wp_enqueue_script( 'ihc-print-this' );

        
        if (!empty($data['metas']['ihc_membership_card_custom_css'])){
            $output .=
            "<style>".
                stripslashes($data['metas']['ihc_membership_card_custom_css'])
            ."</style>";
        }
        $output .= '    <script>
                var printhisopt = {
                    importCSS: true,
                    importStyle: true,
                    loadCSS:"'.IHC_URL.'assets/css/style.css",
                    debug: false,
                    printContainer: true,
                    pageTitle: "",
                    removeInline: true,
                    printDelay: 333,
                    header: null,
                    formValues: false,
                };
                        jQuery(document).ready(function(){
                                jQuery(".fa-print-ihc").on("click", function(e){
                                        var idToPrint = jQuery( e.target ).attr( "data-id-to-print" );
                                        jQuery( "#" + idToPrint ).printThis(printhisopt);
                                });
                        });
            </script>';
        foreach ($data['levels'] as $lid => $level_data){
            if (in_array($lid, $exclude_levels)){
                continue;
            }
            ob_start();
            include $template;
            $output .= ob_get_contents();
            ob_end_clean();
        }
     }else{
        $output = '<div class="ihc-additional-message">'. __("No Membership Cards available based on your Subscriptions. SignUp on new Subscriptions or renew the existent one.", 'ihc').'</div>';
     }
 }
 return $output;

下面是这个foreach循环的数据结构。

代码语言:javascript
复制
array(1) { [2]=> array(12) { ["id"]=> string(1) "3" ["user_id"]=> string(1) "4" ["level_id"]=> string(1) "2" ["start_time"]=> string(19) "2021-05-15 19:05:21" ["update_time"]=> string(19) "2021-06-15 19:05:27" ["expire_time"]=> string(19) "2021-06-15 19:05:21" ["notification"]=> string(1) "0" ["status"]=> string(1) "1" ["label"]=> string(7) "Monthly" ["level_slug"]=> string(7) "monthly" ["badge_image_url"]=> string(0) "" ["is_expired"]=> bool(false) } }

源代码文件:shortcode.php

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 07:54:02

我找到了解决办法。

代码语言:javascript
复制
if(isset($data['custom_fields']) && is_array($data['custom_fields'])){ //This line of code is missing previously
     foreach ($data['custom_fields'] as $key => $value) {
        if (empty($data['custom_fields'][$key])){
            unset($data['custom_fields'][$key]);
        }
     }
    }
     if (!empty($data['levels'])){

        $fullPath = IHC_PATH . 'public/views/membership_card.php';
        $searchFilename = 'membership_card.php';
        $template = apply_filters('ihc_filter_on_load_template', $fullPath, $searchFilename );
        wp_enqueue_script( 'ihc-print-this' );

        
        if (!empty($data['metas']['ihc_membership_card_custom_css'])){
            $output .=
            "<style>".
                stripslashes($data['metas']['ihc_membership_card_custom_css'])
            ."</style>";
        }
        $output .= '    <script>
                var printhisopt = {
                    importCSS: true,
                    importStyle: true,
                    loadCSS:"'.IHC_URL.'assets/css/style.css",
                    debug: false,
                    printContainer: true,
                    pageTitle: "",
                    removeInline: true,
                    printDelay: 333,
                    header: null,
                    formValues: false,
                };
                        jQuery(document).ready(function(){
                                jQuery(".fa-print-ihc").on("click", function(e){
                                        var idToPrint = jQuery( e.target ).attr( "data-id-to-print" );
                                        jQuery( "#" + idToPrint ).printThis(printhisopt);
                                });
                        });
            </script>';
        foreach ($data['levels'] as $lid => $level_data){
            if (in_array($lid, $exclude_levels)){
                continue;
            }
            ob_start();
            include $template;
            $output .= ob_get_contents();
            ob_end_clean();
        }
     }else{
        $output = '<div class="ihc-additional-message">'. __("No Membership Cards available based on your Subscriptions. SignUp on new Subscriptions or renew the existent one.", 'ihc').'</div>';
     }
 }
 return $output;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67546282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档