قرار دادن پلیر امن در وردپرس

نصب روی سایت شما۳ دقیقه مطالعه

آموزش قدم‌به‌قدم نمایش ویدیوهای قفل‌شده‌ی XAPlayer داخل برگه‌ها و نوشته‌های وردپرس با یک شورت‌کد ساده؛ فقط برای کاربران واردشده.

همه‌ی راهنماها

در این آموزش یک شورت‌کد [xaplayer] به سایت وردپرسی‌تان اضافه می‌کنید. هر جا آن را بنویسید، دانشجوی واردشده دوره را داخل همان صفحه با نام خودش روی تصویر می‌بیند و به کد لایسنس نیازی ندارد.

پیش از شروع#

  1. در پنل XAPlayer به «تنظیمات» بروید و در بخش «کلید API» یک کلید بسازید. کلید فقط یک بار نمایش داده می‌شود؛ همان لحظه کپی‌اش کنید.
  2. در «سایت‌های مجاز برای نمایش پلیر» نشانی کامل سایت‌تان را اضافه کنید، مثلاً https://academy.example.com. اگر سایت با www هم باز می‌شود، آن را هم اضافه کنید.
  3. شناسه‌ی دوره را بردارید: در «تنظیمات»، بخش «راهنمای نمایش پلیر در سایت شما» دوره را انتخاب کنید تا شناسه‌اش در نمونه‌کد نوشته شود. همان بخش آخر نشانی صفحه‌ی دوره در پنل هم هست.

کلید را در wp-config.php بگذارید#

فایل: wp-config.phpدر پوشه‌ی اصلی وردپرس، کنار wp-load.php

wp-config.php
// wp-config.php: above the line "That's all, stop editing!"
define('XAPLAYER_API', 'https://xaplayer.ir/api/v1');
define('XAPLAYER_API_KEY', 'xap_sk_...'); // from Settings in your XAPlayer panel

شورت‌کد را اضافه کنید#

این کد را در functions.php پوسته‌ی فرزند بگذارید، یا با افزونه‌ای مثل Code Snippets اضافه کنید تا با به‌روزرسانی پوسته پاک نشود.

فایل: wp-content/themes/your-child-theme/functions.php

functions.php
<?php
// Shortcodes: [xaplayer course="COURSE_ID"]  or  [xaplayer video="VIDEO_ID"]
add_shortcode('xaplayer', function ($atts) {
    $atts = shortcode_atts(['course' => '', 'video' => ''], $atts, 'xaplayer');

    if (!is_user_logged_in()) {
        return '<p>برای تماشای این درس وارد حساب خود شوید.</p>';
    }

    $user = wp_get_current_user();
    $body = [
        'viewer'     => ['id' => (string) $user->ID, 'name' => $user->display_name],
        'ttlSeconds' => 4 * HOUR_IN_SECONDS,
    ];
    $phone = get_user_meta($user->ID, 'billing_phone', true);
    if ($phone) {
        $body['viewer']['phone'] = $phone; // shown on the video instead of the name
    }
    if ($atts['video'] !== '') {
        $body['videoId'] = $atts['video'];
    } else {
        $body['courseId'] = $atts['course'];
    }

    $res = wp_remote_post(XAPLAYER_API . '/embed-tokens', [
        'timeout' => 10,
        'headers' => [
            'Authorization' => 'Bearer ' . XAPLAYER_API_KEY,
            'Content-Type'  => 'application/json',
        ],
        'body' => wp_json_encode($body),
    ]);

    if (is_wp_error($res) || wp_remote_retrieve_response_code($res) !== 200) {
        return '<p>پلیر بارگذاری نشد. صفحه را دوباره باز کنید.</p>';
    }

    $url = json_decode(wp_remote_retrieve_body($res), true)['url'] ?? '';

    return sprintf(
        '<iframe src="%s" allow="fullscreen" style="width:100%%;aspect-ratio:16/9;border:0;border-radius:12px"></iframe>',
        esc_url($url)
    );
});

در صفحه‌ی درس استفاده کنید#

  1. برگه یا نوشته‌ی درس را در ویرایشگر باز کنید.
  2. یک بلوک «کد کوتاه» اضافه کنید و بنویسید: [xaplayer course="شناسه‌ی دوره"]. برای فقط یک جلسه: [xaplayer video="شناسه‌ی ویدیو"].
  3. صفحه را منتشر کنید و با یک حساب دانشجو باز کنید.

این شورت‌کد به هر کاربر واردشده پلیر را نشان می‌دهد. اگر فقط خریداران باید ببینند، صفحه را با افزونه‌ی عضویت محدود کنید یا از آموزش ووکامرس استفاده کنید.

اگر کار نکرد#

نشانهعلت و راه‌حل
جای پلیر خالی است یا مرورگر می‌گوید «اجازه‌ی اتصال ندارد»نشانی سایت در «سایت‌های مجاز» نیست یا با www/بدون www فرق دارد. نشانی دقیق صفحه را اضافه کنید.
خطای ۴۰۱ (unauthorized)کلید API اشتباه است یا کلید تازه‌ای ساخته‌اید و کلید قبلی از کار افتاده. کلید را دوباره کپی کنید.
خطای ۴۰۴ (not_found)شناسه‌ی دوره یا ویدیو اشتباه است یا متعلق به حساب دیگری است.
خطای ۴۰۰ (bad_request)بدنه‌ی درخواست ناقص است: دقیقاً یکی از courseId یا videoId را بفرستید و viewer.id را خالی نگذارید.
پلیر بعد از چند ساعت «زمان صفحه تمام شده» می‌گویدتوکن منقضی شده. هر بار که صفحه باز می‌شود توکن تازه بگیرید و نشانی پلیر را کش نکنید.

XAPlayer را ۱۴ روز رایگان، با ۱۰ لایسنس هدیه امتحان کنید.

دوره‌ی خود را رایگان امتحان کنید