Всем привет, пытаюсь вывести shortcode, но не получается. Надеюсь кто-нибудь укажет на решение.
Цель: Мне нужен textfield в Visual Composer, чтобы я мог добавлять уникальные shortcode'ы для каждой из моих кнопок оплаты.
Вот textfield который я создал:
array(
'type' => 'textfield',
'heading' => esc_html__('Shortcode', 'softing'),
'param_name' => 'shortcode',
'edit_field_class' => 'vc_col-sm-4',
),
Вот shortcode который я вставляю: [purchase_link id="3839" text="Add To Cart" style="button" color="orange"]
Если я вывожу этот shortcode через:
$out .= '<div class="pricing-box-shortcode">'.'<div class="#pricing-box-shortcode">'.do_shortcode($atts['shortcode']).'</div>'.'</div>';
То получаю такой результат - моя главная проблема, которую я пытаюсь решить:
Заметил что если я не использую $atts['shortcode'] а просто вставляю голый shortcode в do_shortcode() - всё срабатывает нормально:
do_shortcode([purchase_link id="3839" text="Add To Cart" style="button" color="orange"])
Судя по результату то у вас в $atts['shortcore']
экранированные данные и так же ваш шорткод выводит данные, а не возвращает как это должно быть.
Мне кажется у вас здесь банально не хватает одинарных кавычек
do_shortcode('[purchase_link id="3839" text="Add To Cart" style="button" color="orange"]');
Вот мой пример шорткода с атрибутами
// Add Shortcode
function akea_banner_shortcode( $atts ) {
// Attributes
$atts = shortcode_atts(
array(
'img' => 'https://dummyimage.com/1920x200/ccc/fff.jpg',
'alt' => '',
'url' => '',
'target' => '_self',
'width' => '100%',
'height' => 'auto',
),
$atts,
'banner'
);
$alt = ($atts['alt'] != '') ? ' alt="' . $atts['alt'] . '"' : ' alt=""';
$urlStyles = ' style="display: block;"';
$blockStyles = ' style="margin-bottom: 30px;"';
$output = '<div class="akea-banner-shortcode"' . $blockStyles . '>';
if ($atts['url'] != '') {
$output .= '<a ' . $urlStyles . ' href="' . $atts['url'] . '" target="' . $atts['target'] . '">';
}
$output .= '<img src="' . $atts['img'] . '"' . $alt . ' width="' . $atts['width'] . '"' . ' height="' . $atts['height'] . '">';
if ($atts['url'] != '') {
$output .= '</a>';
}
$output .= '</div>';
// Return code
return $output;
}
add_shortcode( 'banner', 'akea_banner_shortcode' );
[banner img="/wp-content/uploads/2019/02/banner_blog.png" alt="banner" url="https://domain.ru/" target="_blank"]
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как присвоить text в <input type="text" value="+1" name="n"> значению переменной $a
Помогите пожалуйста я запустил сайт и после этого браузер не читаетphp файлы а читает только
Есть CSV-файл, в нём нужно прочитать несколько строк с конца и переслать их на серверПри чтении русские буквы некорректно отображаются
На компе всё работает, на ноуте выдаёт следующую ошибку