• حل شده shooka

    (@shooka)


    سلام وقت بخیر
    من میخوام بخشی رو به قسمت داشبورد پنل کاربری در ووکامرس اضافه کنم با کد زیر این کارو انجام دادم ولی میخوام متن من بیاد بالای متن پیش فرض خود ووکامرس اولیت بهش 1 هم دادم ولی بازم بعد از متن پیشفرض نمایش میده

    add_action( 'woocommerce_account_dashboard', 'show_special_content_to_customer_in_dashboard',1);

    function show_special_content_to_customer_in_dashboard() {

    echo '<h3>محتوای اختصاصی </h3>';

    }

    با کد زیر مثلا بخش سفارش ها رو میزارم اولیت هم میده درسته و اول متن رو نمایش میده

    add_action( 'woocommerce_account_content', 'show_special_content_in_dashboard_alternative',1 );

    function show_special_content_in_dashboard_alternative() {

    if ( is_wc_endpoint_url( 'orders' ) ) {

    echo '<h3>محتوای اختصاصی </h3>';
    }
    }

    ولی وقتی جای orders از عبارت dashboard استفاده میکنم متنی در داشبورد نمایش نمیده
    باید از چه کدی استفاده کنم ؟

در حال نمایش 4 پاسخ ( از کل 4)
  • مدیر saeedfard

    (@saeedfard)

    درود وقت بخیر
    شما به جای is_wc_endpoint_url('dashboard') باید از این شرط استفاده کنید

    if ( ! is_wc_endpoint_url() ) {
    echo '<h3>محتوای اختصاصی</h3>';
    }

    برای اینکه متن شما اول بیاد، می‌تونید هوک پیش‌فرض ووکامرس رو بردارید و بعد دوباره صداش بزنید. مثلا:

    <?php
    // حذف متن پیش‌فرض ووکامرس از داشبورد
    remove_action( 'woocommerce_account_dashboard', 'woocommerce_account_dashboard', 10 );

    // نمایش محتوای اختصاصی شما
    add_action( 'woocommerce_account_dashboard', 'my_custom_dashboard_content', 5 );
    function my_custom_dashboard_content() {
    echo '<h3>محتوای اختصاصی</h3>';
    echo '<p>اینجا می‌تونی هر متن، کد HTML یا شورت‌کدی بذاری.</p>';
    }

    // دوباره اضافه کردن متن پیش‌فرض ووکامرس
    add_action( 'woocommerce_account_dashboard', 'woocommerce_account_dashboard', 10 );

    این رو تو فانکشن پوسته قرار بدید و تست کنید

    • این پاسخ 2 ماه، 3 هفته پیش توسط saeedfard اصلاح شده است.
    آغازکننده موضوع shooka

    (@shooka)

    سلام

    کد رو به این صورت که گفتین

    if ( ! is_wc_endpoint_url()

    اصلاح کردم درست شد
    ولی با کد پایین که دادین تست کردم خطای زیر میاد داخل پیشخوان پنل

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'woocommerce_account_dashboard' not found or invalid function name in /**/wp-includes/class-wp-hook.php on line 324
    • این پاسخ 2 ماه، 3 هفته پیش توسط shooka اصلاح شده است.
    مدیر saeedfard

    (@saeedfard)

    این رو امتحان کن

    <?php
    // محتوای اختصاصی در ابتدای داشبورد (قبل از متن پیش‌فرض ووکامرس)
    add_action( 'woocommerce_account_content', 'sf_dashboard_intro_before_default', 1 );
    function sf_dashboard_intro_before_default() {

    if ( function_exists( 'is_wc_endpoint_url' ) && ! is_wc_endpoint_url() ) {
    echo '<div class="woocommerce-account-custom" style="margin-bottom:1.25rem">';
    echo '<h3>محتوای اختصاصی</h3>';
    // هر HTML/شورت‌کد دلخواه…
    echo '</div>';
    }
    }
    آغازکننده موضوع shooka

    (@shooka)

    ممنون درست شد

در حال نمایش 4 پاسخ ( از کل 4)

برای پاسخ به این موضوع باید وارد شوید.