0

我将 woocommerce 与 LearnDash 集成。现在我正在尝试从 woocommerce 产品对象或任何其他方式(通过 woocommerce 产品 ID)获取所选课程(相关课程)。必须有一种购买产品解锁课程的方法。就是找不到。

有人可以帮忙吗?

4

1 回答 1

1

相关课程数据以 post_meta 形式存储在 WooCommerce 产品上。

您可以在 wp-content/plugins/learndash-woocommerce/learndash_woocommerce.php 第 150 行左右看到这一点,当 render_course_selector() 函数使用“_related_courses”更新帖子元数据时,它是保存产品的 $_POST 中包含的关键。

对于我的用例,我需要在传出的电子邮件中获取它,所以我这样做了:

function my_plugin_add_course_link_to_emails($item_id, $item, $order, $plain_text)
{
    $html = '<div class="email-course-link">';
    $related_courses = get_post_meta($item->get_product_id(), '_related_course');
    foreach ($related_courses as $related_course) {
        $id = $related_course[0];
        $url = learndash_get_course_url($id);
        $html .= '<a href="' . $url . '">Course Link</a>';
    }
    $html .= '</div>';
    echo $html;
}
add_action('woocommerce_order_item_meta_start', 'my_plugin_add_course_link_to_emails', 10, 4);

回答你问题的神奇线是这条:

$related_courses = get_post_meta($item->get_product_id(), '_related_course');

以上的任何变化都应该为您解决问题。

于 2020-09-18T21:21:44.933 回答