You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确过滤Corsizio API返回的活动列表以显示近期活动?

问题:Corsizio API活动列表未显示7/8月近期活动,反而展示年底活动

我是PHP和WordPress开发新手,正在开发一款插件,核心功能是搜索数据库返回查询结果,同时在「推荐」板块展示来自Corsizio API的即将到来的活动列表。目前遇到的问题是:推荐板块显示的是年底的活动,但应该展示7/8月的近期活动,尝试多种方法都没能解决。

以下是我的现有代码:

获取推荐课程的API请求函数

// Function to fetch suggested courses from Corsizio API
function get_suggested_courses($license_number) {
    $api_url = 'https://api.corsizio.com/v1/events';
    $api_key = 'API_KEY'; 
    
    error_log('Fetching events from Corsizio API...');
    $response = wp_remote_get($api_url, array(
        'headers' => array(
            'Authorization' => 'Bearer ' . $api_key,
        ),
    ));

    if (is_wp_error($response)) {
        error_log('API request failed: ' . $response->get_error_message());
        return [];
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body);
    $events = $data->list ?? [];

    // Log the fetched events
    error_log('Fetched events: ' . print_r($events, true));
    error_log('Number of events fetched: ' . count($events));

    // If license number is provided, filter the events
    if (!empty($license_number)) {
        $license_prefix = substr($license_number, 0, 2);

        $events = array_filter($events, function($event) use ($license_prefix) {
            return strpos($event->summary, $license_prefix) !== false;
        });

        // Log the events after filtering by license prefix
        error_log('Events after filtering by license prefix: ' . print_r($events, true));
        error_log('Number of events after filtering by license prefix: ' . count($events));
    }

    // Filter events to only include the 5 most recent ones
    $filtered_events = array_slice($events, 0, 5);

    // Log the filtered events
    error_log('Filtered events: ' . print_r($filtered_events, true));
    error_log('Number of filtered events: ' . count($filtered_events));

    return $filtered_events;
}

前端渲染推荐课程的代码片段

// Insert suggested courses here
$first_license_number = !empty($license_results) ? $license_results[0]->license_number : null;
$suggested_courses = get_suggested_courses($first_license_number);
if (!empty($suggested_courses)) {
    ?>
    <h3>Suggested Courses</h3>
    <table>
        <thead>
            <tr>
                <th>Course Title</th>
                <th>Start Date</th>
                <th>Location</th>
                <th>Register</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($suggested_courses as $event) :
                // Check if the necessary properties exist before accessing them
                $course_title = isset($event->name) ? $event->name : 'N/A';
                $summary = isset($event->summary) ? $event->summary : 'N/A';
                $start_date = isset($event->startDate) ? (new DateTime($event->startDate))->format('m/d/Y') : 'N/A';
                $location = isset($event->location) ? $event->location : 'N/A';
                $register_url = isset($event->formUrl) ? $event->formUrl : '#';
                ?>
                <tr>
                    <td><?php echo esc_html($course_title); ?></td>
                    <td><?php echo esc_html($start_date); ?></td>
                    <td><?php echo esc_html($location); ?></td>
                    <td><a href="<?php echo esc_url($register_url); ?>" target="_blank">Click Here to Register</a></td>
                </tr>
            <?php endforeach; ?>
        </tbody>
    </table>

当前活动展示效果:
推荐活动展示效果

以上是插件的部分代码,如需查看完整代码请告知。

内容的提问来源于stack exchange,提问作者AmazinAzn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:30:58