Php 使用自定义字段变量作为数据库中的快捷码参数值

Php 使用自定义字段变量作为数据库中的快捷码参数值,php,wordpress,woocommerce,barcode,shortcode,Php,Wordpress,Woocommerce,Barcode,Shortcode,在Woocommerce中,我使用的是插件,我想使用自定义字段作为此短代码中参数的值。这是你的电话号码 这就是我想要的(其中CUSTOMFILEDVALUE是自定义字段的值): 在这种短代码中是否可以包含自定义字段值?如何做到这一点 任何帮助都将不胜感激。要做到这一点,您可以在自定义短代码函数中嵌入现有的短代码。以下代码是基于其他类似函数答案的示例 在这段代码中,我获取页面、帖子或自定义帖子的帖子id。可以使用shortcode ID参数指定post ID,就像在原始shortcode中一样 守

在Woocommerce中,我使用的是插件,我想使用自定义字段作为此短代码中参数的值。这是你的电话号码

这就是我想要的
(其中
CUSTOMFILEDVALUE
是自定义字段的值)

在这种短代码中是否可以包含自定义字段值?如何做到这一点


任何帮助都将不胜感激。

要做到这一点,您可以在自定义短代码函数中嵌入现有的短代码。以下代码是基于其他类似函数答案的示例

在这段代码中,我获取页面、帖子或自定义帖子的帖子id。可以使用shortcode ID参数指定post 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_键
必须替换为自定义字段的meta键。所有其他YITH短代码参数均保持不变且可用。只有
参数用于传递自定义字段元键,允许在嵌入的YITH快捷码中获取自定义字段值

1) 在Wordpress页面或帖子编辑器中:

[render_barcode value="meta_key" protocol="CODE39"]
2) 在PHP代码中:

echo do_shortcode( "[render_barcode value='meta_key' protocol='CODE39']" );

这是在后端内容编辑器中还是在模板中?在插件中的HTML编辑器中
echo do_shortcode( "[render_barcode value='meta_key' protocol='CODE39']" );