ساخت شورت کد برای یک کد آماده

سلام

امکانش هست برای کد زیر شورت کد بسازید
باتشکر

add_action('woocommerce_after_add_to_cart_form', 'download_products');

function download_products()
{
    global $product;
    $downloads = array();
    $user_id = get_current_user_id();
    $downloads = wc_get_customer_available_downloads($user_id);

    if (!empty($downloads)) {
        foreach ($downloads as $download) {
            if ($download['product_id'] === $product->get_id()) {
                echo '<a href="' . $download['download_url'] . '">Download</a>';
            }
        }
    }

}

کار کد نمایش لینک دانلود محصول هست در صفحه محصول

ویرایش : این کد عملکرد نامناسب‌ی ارائه داد.
پست حاوی کد اصلاح شده

درود،

کد درخواستی شما :

# Function required for shortcode :

function sevenhost_woo_digidownloadlinks() {
 
# Start your code

add_action('woocommerce_after_add_to_cart_form', 'download_products');
function download_products()
{
    global $product;
    $downloads = array();
    $user_id = get_current_user_id();
    $downloads = wc_get_customer_available_downloads($user_id);
    if (!empty($downloads)) {
        foreach ($downloads as $download) {
            if ($download['product_id'] === $product->get_id()) {
                echo '<a href="' . $download['download_url'] . '">Download</a>';
            }
        }
    }
}

# End your code 

}

# Add shortcode to run function :

 add_shortcode('wc-digidl-links', 'sevenhost_woo_digidownloadlinks');

ابتدا کد بالا را در فایل functions.php چایلد تم یا تم اصلی خود قرار دهید

بعد از اون با استفاده از این شورتکد عملیات مدنظر خود را انجام دهید :

[wc-digidl-links]

کد گذاشتم ولی کار نکرد

یه اصلاح انجام دادم روی کد :

add_shortcode('wc-digidl-links', 'download_products','woocommerce_after_add_to_cart_form');

function download_products()
{

    $downloads = array();
    $user_id = get_current_user_id();
    $downloads = wc_get_customer_available_downloads($user_id);
    if (!empty($downloads)) {
        foreach ($downloads as $download) {

            echo '<a href="' . $download['download_url'] . '">Download</a>';

        }
    }

}

کد بالا رو جایگزین کد قبلی در فایل functions.php کنید و مجددا تست کنید که با این شورت کد کار میکنه ؟

[wc-digidl-links]
1 پسندیده

طبق کدهای قبلی که شورت کد کردید کد زیر تست کردم کار کرد ولی جای اسم فایل Download مینویسه و ظاهر خاصی نداره میشه همین کد کاری کرد که جای Download اسم فایل بنویسه و برای ظاهرش هم یک پدینگ به هر اسم داده بشه و گوشه‌اش گرد بشه؟

add_shortcode('wc-digidl-links', 'download_products','woocommerce_after_add_to_cart_form');

function download_products()
{

    $downloads = array();
    $user_id = get_current_user_id();
    $downloads = wc_get_customer_available_downloads($user_id);
    if (!empty($downloads)) {
        foreach ($downloads as $download) {

            echo '<a href="' . $download['download_url'] . '">Download</a>';

        }
    }

}

استایل مدنظرتون رو به این صورت در این بخش از کد اعمال کنید :

echo '<a style="استایل مدنظر شما" href="' . $download['download_url'] . '">Download</a>';

یا در صورت نیاز به این شکل :

echo '<a href="' . $download['download_url'] . '"><p style="استایل مدنظر شما">Download</p></a>';

همچنین برای کادر دادن و استایل دهی به بخشی که لینک ها درون آن قرار می‌گیرد به این صورت شورت کد رو در صفحه ی مدنظر استایل دهی کنید :

<div style="استایل مدنظر شما">[wc-digidl-links]</div>
1 پسندیده

یعنی جای دو کد اول برای استایل میتونم کد آخر استفاده کنم؟

خیر،
دو کد اول برای استایل دهی به دکمه ی دانلود هستند، یعنی هر دکمه ی دانلود حاوی لینک ان استایل را خواهد داشت

کد سوم برای استایل دهی به کادری هست که دکمه های دانلود داخل آن قرار می‌گیرند

برای کد اول و دوم خطا میده

من یکسری استایل داخل این دو کد جایگزین کردم و چک کردم اما مشکلی مشاهده نشد :


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

echo '<a href="' . $download['download_url'] . '"><p style="color:#ffffff;background-color:#003CEF;border-radius:50px;text-align:center ;padding-top:5px ;padding-bottom:5px;max-width:150px; ">Download</p></a>';

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

function download_products()
{$downloads = array();
$user_id = get_current_user_id();
$downloads = wc_get_customer_available_downloads($user_id);
if (!empty($downloads)) {
foreach ($downloads as $download) {echo '<a href="' . $download['download_url'] . '">'.$download['download_name'].'</a>'."</br>";}}}

add_shortcode('wc-digidl-links', 'download_products','woocommerce_after_add_to_cart_form');

توی این کد شما هیچ ایرادی وجود نداره :



از یکی از این دو کد استفاده کنید :

function download_products()
{$downloads = array();
$user_id = get_current_user_id();
$downloads = wc_get_customer_available_downloads($user_id);
if (!empty($downloads)) {
foreach ($downloads as $download) {
echo '<a style="محل اعمال استایل" href="' . $download['download_url'] . '">'.$download['download_name'].'</a>'."</br>";
}
}
}

add_shortcode('wc-digidl-links', 'download_products','woocommerce_after_add_to_cart_form');

یا

function download_products()
{$downloads = array();
$user_id = get_current_user_id();
$downloads = wc_get_customer_available_downloads($user_id);
if (!empty($downloads)) {
foreach ($downloads as $download) {
echo '<a href="' . $download['download_url'] . '"><p style="محل اعمال استایل">'.$download['download_name'].'</p></a>'."</br>";
}
}
}

add_shortcode('wc-digidl-links', 'download_products','woocommerce_after_add_to_cart_form');
2 پسندیده

خیلی ممنون بابت کمکی که کردید :pray:

خواهش میکنم
امیدوارم مشکلتون حل شده باشه :pray:

1 پسندیده