在Woocommerce中,我使用的是YITH WooCommerce Barcodes and QR Codes插件,并且我想使用自定义字段作为此短代码中参数的值。这是related documentation。
这就是我想要的(where
CUSTOMFILEDVALUE is the value of the custom field)
:
[yith_render_barcode value="CUSTOMFILEDVALUE" protocol="CODE39"]
是否可以在此类短代码中包含自定义字段值?该怎么做?
任何帮助将不胜感激。
答案 0 :(得分:0)
为此,您可以将现有的Shortcode嵌入自定义的Shortcode函数中。以下代码是基于其他类似功能答案的示例。
在此代码中,我获取页面,帖子或自定义帖子的帖子ID。您可以使用shortcode id参数指定帖子ID,就像在原始shortcode中一样。
代码:
function custom_yith_render_barcode( $atts ) {
// Shortcode attributes
$atts = shortcode_atts( array(
'id' => '0', // Product ID
'hide_if_empty' => '1',
'value' => '',
'protocol' => 'EAN8',
), $atts, 'render_barcode' );
global $post;
if( '0' === $atts['id'] && $post && is_object($post) )
$id = $post->ID;
elseif( $atts['id'] > 0 )
$id = $atts['id'];
$hide = $atts['hide_if_empty'];
$value = get_post_meta( $id, $atts['value'], true ) ? get_post_meta( $id, $atts['value'], true ) : $atts['value'];
$protocol = $atts['protocol'];
return do_shortcode( "[yith_render_barcode id='$id' hide_if_empty='$hide' value='$value' protocol='$protocol']" );
}
add_shortcode('render_barcode', 'custom_yith_render_barcode');
代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。
用法-
meta_key
下面的必须替换为自定义字段的元密钥。所有其他YITH Shortcode参数均未更改且可用。仅使用value
参数来传递自定义字段元密钥,从而可以使用嵌入式YITH短代码获取自定义字段的值。
1)在Wordpress页面或帖子编辑器中:
[render_barcode value="meta_key" protocol="CODE39"]
2)在PHP代码中:
echo do_shortcode( "[render_barcode value='meta_key' protocol='CODE39']" );