我已经为我的woocommerce产品添加了自定义字段,并且能够输入并填写产品的自定义字段数据。我现在正尝试在我在woocommerce单一产品页面上添加的按钮中使用该自定义字段中的数据。
自定义字段是产品示例的URL。然后,我尝试在woocommerce单个产品页面上添加“查看产品示例”按钮,该按钮导航到在自定义字段中输入的URL。这是我的代码:
// 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;
// Text Field
woocommerce_wp_text_input(
array(
‘id’ => ‘product_sample’,
‘label’ => __( ‘Sample Product Link’, ‘woocommerce’ ),
‘placeholder’ => ‘http://’,
‘desc_tip’ => ‘true’,
‘description’ => __( ‘Enter the sample product link here.’, ‘woocommerce’ )
)
);
}
function woo_add_custom_general_fields_save( $post_id ){
// Textfield
$woocommerce_text_field = $_POST[‘product_sample’];
if( !empty( $woocommerce_text_field ) )
update_post_meta( $post_id, ‘product_sample’, esc_html( $woocommerce_text_field ) );
}
add_action(‘woocommerce_after_add_to_cart_button’,’cmk_additional_button’);
function cmk_additional_button() {
echo '<a href="CONTENT OF CUSTOM FIELD - URL" target="_blank" button
type="submit" class="button sample">View Product Sample</a>';
}
我需要帮助确定如何将自定义字段元数据放入代码末尾回显的按钮的链接中。
感谢任何人都能给予的帮助。
你需要以这种方式使用get_post_meta()
函数:
add_action( 'woocommerce_after_add_to_cart_button', 'cmk_additional_button' );
function cmk_additional_button() {
global $post;
$url = get_post_meta( $post->ID, 'product_sample', true );
echo '<a href="'.$url.'" target="_blank" button type="submit" class="button sample">View Product Sample</a>';
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
这应该工作。
在你的问题的代码中你使用
’
,你应该用'
替换它们,以避免php错误。
您可以使用ACF插件并在单个产品页面上调用短代码参考网址:http://blog.adlivetech.com/get-custom-fields-woocomerce/