在WooCommerce中,我添加了一个自定义产品类型来销售Google meet网络研讨会。
- 首先,我在管理产品页面中添加了一个字段来放置Google meet链接(作品)。
- 然后,当用户购买产品时,网络研讨会链接将显示在WooCommerce订单详细信息页面和感谢页面(部分工作)。
- 最后,一旦用户购买了产品,我替换添加到购物车按钮与自定义按钮“加入网络研讨会”链接到网络研讨会(不工作).
我已经很努力了,但还是没修好!
我仍然有以下问题:
1.“谢谢”页面已经崩溃了
1.购买产品后,添加到购物车按钮不会被“加入网络研讨会”文本替换。
任何帮助都很感激。
到目前为止的代码:
// Add Google Meet link field
function custom_add_google_meet_link_field() {
echo '<div class="options_group">';
woocommerce_wp_text_input(
array(
'id' => 'google_meet_link',
'label' => __('Google Meet Link', 'text-domain'),
'placeholder' => 'Enter Google Meet Link',
'desc_tip' => 'true',
'description' => __('Add your Google Meet link.', 'text-domain')
)
);
echo '</div>';
}
add_action('woocommerce_product_options_general_product_data', 'custom_add_google_meet_link_field');
// Save Google Meet link field data
function custom_save_google_meet_link_field_data($product_id) {
$google_meet_link = isset($_POST['google_meet_link']) ? sanitize_text_field($_POST['google_meet_link']) : '';
update_post_meta($product_id, 'google_meet_link', $google_meet_link);
}
add_action('woocommerce_process_product_meta', 'custom_save_google_meet_link_field_data');
// Display Google Meet link on order details and thank you page (clickable)
function custom_display_google_meet_link($order) {
$order_id = method_exists($order, 'get_id') ? $order->get_id() : $order->id;
$items = $order->get_items();
foreach ($items as $item) {
$product_id = $item['product_id'];
$google_meet_link = get_post_meta($product_id, 'google_meet_link', true);
if (!empty($google_meet_link)) {
echo '<h3>' . __('Google Meet Link:', 'text-domain') . '</h3>';
echo '<p><a href="' . esc_url($google_meet_link) . '">' . esc_html($google_meet_link) . '</a></p>';
}
}
}
add_action('woocommerce_order_details_after_order_table', 'custom_display_google_meet_link', 10, 1);
add_action('woocommerce_thankyou', 'custom_display_google_meet_link', 10, 1);
// Change "Add to Cart" button to "Join Webinar"
function custom_change_add_to_cart_button($button_text, $product) {
if ($product->get_type() === 'google_meet_webinar' && $product->is_purchasable()) {
$button_text = __('Join Webinar', 'text-domain');
}
return $button_text;
}
add_filter('woocommerce_product_single_add_to_cart_text', 'custom_change_add_to_cart_button', 10, 2);
add_filter('woocommerce_product_add_to_cart_text', 'custom_change_add_to_cart_button', 10, 2);
1条答案
按热度按时间vcudknz31#
我几乎完全重新访问了您的代码,并设法修复了您的问题。
对于用户购买的产品的添加到购物车按钮,它现在被链接到Google网络研讨会的类似自定义按钮“加入网络研讨会”所取代。
重新访问的代码 (更新):
代码放在活动子主题(或活动主题)的functions.php文件中。测试和作品。