WordPress do_shortcode с $ atts ['shortcode'] внутри - PullRequest
0 голосов
/ 03 октября 2019

Я только что столкнулся с проблемой, пытаясь отобразить мой шорткод, надеюсь, кто-нибудь может показать мне решение:

Моя цель: мне нужно текстовое поле в Visual Composer, чтобы я мог добавить уникальный шорткод для каждого измои кнопки оплаты.

Вот текстовое поле, которое я создал:

array(
        'type'          => 'textfield',
        'heading'       => esc_html__('Shortcode', 'softing'),
        'param_name'    => 'shortcode',
        'edit_field_class' => 'vc_col-sm-4',
        ),

Вот шорткод, который я вставлю в него: [purchase_link id = "3839" text ="Добавить в корзину" style = "button" color = "orange"]

Теперь я пытаюсь отобразить шорткод с помощью:

$out .= '<div class="pricing-box-shortcode">'.'<div class="#pricing-box-shortcode">'.do_shortcode($atts['shortcode']).'</div>'.'</div>';

Вот результат &Моя настоящая проблема: Снимок экрана

Я заметил, что если я не использую $ atts ['shortcode'] , а вместо этого просто вставляю свой шорткод - это работает.

do_shortcode([purchase_link id="3839" text="Add To Cart" style="button" color="orange"])

Буду признателен за любое решение или подсказку!

1 Ответ

0 голосов
/ 03 октября 2019

Если вы хотите добавить шорткод для кнопки, вы также можете использовать приведенный ниже код, так как он также работает как шорткод, и вы также можете отображать кнопку

function button_shortcode( $atts ) {
        return "<input type='button' id='3839' class='button_class_name' name='button_name' value='yes'>";
    }
    add_shortcode( "purchase_link", "button_shortcode" );

Вы можете использовать шорткод выше на странице как:

<?php echo do_shortcode('[purchase_link]'); ?>
...