我将 woocommerce 与 LearnDash 集成。现在我正在尝试从 woocommerce 产品对象或任何其他方式(通过 woocommerce 产品 ID)获取所选课程(相关课程)。必须有一种购买产品解锁课程的方法。就是找不到。
有人可以帮忙吗?
我将 woocommerce 与 LearnDash 集成。现在我正在尝试从 woocommerce 产品对象或任何其他方式(通过 woocommerce 产品 ID)获取所选课程(相关课程)。必须有一种购买产品解锁课程的方法。就是找不到。
有人可以帮忙吗?
相关课程数据以 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');
以上的任何变化都应该为您解决问题。