Шорткод отображается в неправильном месте, всегда сверху

Я работаю в интернет-магазине, который покажет корзину перед оформлением заказа. как сейчас это проверка перед корзиной.

Я не могу заставить это работать. У меня проблема с тем, что плагин всегда отображается в верхней части содержимого. я исправил это некоторое время назад. Теперь я обновил плагин и попробовал то же самое, что вы можете прочитать в нижней части экрана.

Код является оригинальным, как это:

public function __construct() {

    add_action('init', array( &$this, 'start_session' ), 1);

    add_shortcode( 'woocommerce_klarna_checkout', array(&$this, 'klarna_checkout_page') );

    //add_action( 'woocommerce_proceed_to_checkout', array( &$this, 'checkout_button' ), 12 );

    add_filter( 'woocommerce_get_checkout_url', array( &$this, 'change_checkout_url' ), 20 );



}

// Set session
function start_session() {      

    $data = new WC_Gateway_Klarna_Checkout;
    $enabled = $data->get_enabled();

    if(!session_id() && $enabled == 'yes') {
        session_start();
    }
}

// Shortcode
function klarna_checkout_page() {

    $data = new WC_Gateway_Klarna_Checkout;
    $data->get_klarna_checkout_page();


    }

и я попробовал это:

            ob_start();
    $data->get_klarna_checkout_page();
    $output_string=ob_get_contents();;
    ob_end_clean();

    return $output_string;

Чем плагин дыры исчезает, и единственное, что показывает, это /*

Как я писал сверху, это решение работало над более ранней версией плагина, но не сейчас. И все, что я могу найти на WebB, это решение. Так что, если у кого-то есть идея, мне бы это понравилось.

Мэйби проблема в том, что шорткод не находится в функции, куда я положил ob_start();? Я как новичок на php и не могу заставить его работать самостоятельно.

0 ответов

Другие вопросы по тегам