Php do_短代码:在引号之间插入变量的开始和结束标记

Php do_短代码:在引号之间插入变量的开始和结束标记,php,wordpress,quotes,shortcode,Php,Wordpress,Quotes,Shortcode,你能帮我修复这个代码吗? 它应该获取产品ID(它是这样做的),然后获取名为“ID_del_curso”的自定义字段(它是这样做的),最后打印出一个短代码[student course_ID=“$courseid”]HTML[/student] 该按钮是为访问该网站的任何人显示的,而不仅仅是符合产品中嵌入的课程编号学生资格的人 我猜错误在“回声”线的位置。。。我快疯了!救命啊!!!非常感谢:D <?php global $product; $postid = $product

你能帮我修复这个代码吗? 它应该获取产品ID(它是这样做的),然后获取名为“ID_del_curso”的自定义字段(它是这样做的),最后打印出一个短代码[student course_ID=“$courseid”]HTML[/student]

该按钮是为访问该网站的任何人显示的,而不仅仅是符合产品中嵌入的课程编号学生资格的人

我猜错误在“回声”线的位置。。。我快疯了!救命啊!!!非常感谢:D

<?php
    global $product;
    $postid = $product->get_id();
    $courseid = get_post_meta( $product->get_id(), 'ID_del_curso', true );
    $html = '<center><div class="alreadyPurchased"><i class="fas fa-graduation-cap paddingRightM"></i> Ya te has registrado</div></center>';
    echo do_shortcode("[student course_id=&quot;" .$courseid. "&quot;]". $html . "[/student]"); 
?>

所以。。。我一直在努力,并这样解决:

<?php
    global $product;
    $postid = $product->get_id();
    $courseid = get_post_meta( $product->get_id(), 'ID_del_curso', true );
    $html = '"]<center><div class="alreadyPurchased"><i class="fas fa-graduation-cap paddingRightM"></i> Ya te has registrado</div></center>';
    $openIT = '[student course_id="';
    $closeIT = '[/student]';
    echo do_shortcode( $openIT . $courseid . $html . $closeIT ); 
?>

有没有更简单/更清晰的方法?希望它能帮助任何试图实现同样目标的人。

试试:

<?php
    global $product;
    $courseid = get_post_meta( $product->get_id(), 'ID_del_curso', true );

    $student = <<<EOD
[student course_id="$courseid"]
    <center>
        <div class="alreadyPurchased">
            <i class="fas fa-graduation-cap paddingRightM"></i> Ya te has registrado
        </div>
    </center>
[/student]
EOD

    echo do_shortcode( $student );
?>

这在功能上等同于您的代码,但我认为更容易阅读,因为它的格式类似于HTML