我在woocommerce中添加了一个自定义文本字段,并将其显示在WC Vendor pro
的前端。因此供应商可以添加youtube或vimeo链接来嵌入他们的电影。
但由于某种原因,我无法将其保存并显示在前端的产品页面中。
目前我在 functions.php
:
// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
echo '<div class="options_group">';
// Text Field
woocommerce_wp_text_input(
array(
'id' => 'video_url',
'label' => __( 'Your product video link (youtube/vimeo)', 'woocommerce' ),
'placeholder' => 'https://',
'desc_tip' => 'true',
'description' => __( 'Copy the Youtube or Vimeo link here', 'woocommerce' )
)
);
echo '</div>';
}
function woo_add_custom_general_fields_save( $post_id ){
// Text Field
$woocommerce_text_field = $_POST['video_url'];
if( !empty( $woocommerce_text_field ) )
update_post_meta( $post_id, 'video_url', esc_attr( $woocommerce_text_field ) );
}
并在供应商部分中显示该字段:
<div class="all-100">
<!-- Media uploader -->
<div class="wcv-product-media">
<?php BuddyBoss_BM_Templates::product_media_uploader( $object_id ); ?>
<?php woo_add_custom_general_fields( $object_id ); ?>
</div>
</div>
现在供应商可以进入该领域。但是保存或显示它不会起作用。我将以下内容添加到产品页面:
echo $youtubevideo_code = wp_oembed_get( get_field('video_url') );
// tried this one as well:
echo get_post_meta( $post->ID, 'video_url', true );
感谢任何帮助将不胜感激!
答案 0 :(得分:0)
假设你使用acf来使用get_field
,我想你错过了第二个参数$ post_id,该函数需要知道你想要得到的字段的post id。
echo $youtubevideo_code = wp_oembed_get( get_field('video_url') );
你必须像这样对
global $post; // I don't know where is your script (in the loop ? in a function ?)
$youtubevideo_code = wp_oembed_get( get_post_meta($post->ID, 'video_url', true )); // can be get_field('video_url, $post->ID);
echo $youtubevideo_code;