/** * 1. MY ACCOUNT TAB SETUP */ add_filter ( 'woocommerce_account_menu_items', 'missionncc_universal_tab', 40 ); function missionncc_universal_tab( $menu_links ){ $new_link = array( 'my-pdf' => 'My PDF Library' ); $menu_links = array_slice( $menu_links, 0, 2, true ) + $new_link + array_slice( $menu_links, 2, NULL, true ); return $menu_links; } add_action( 'init', 'missionncc_universal_endpoint' ); function missionncc_universal_endpoint() { add_rewrite_endpoint( 'my-pdf', EP_PAGES ); } /** * 2. MULTI-COURSE CONTENT & LIBRARY LOGIC */ add_action( 'woocommerce_account_my-pdf_endpoint', 'missionncc_universal_library_content' ); function missionncc_universal_library_content() { $current_user = wp_get_current_user(); // ======================================================== // --- यहाँ अपने सभी कोर्सेज की लिस्ट जोड़ें --- // फॉर्मेट: 'PRODUCT_ID' => 'PDF_PAGE_LINK', // ======================================================== $courses_data = array( '8200' => 'https://missionncc.com/b-exam-pdf-2026/#flipbook-df_8216/3/', '8233' => 'https://missionncc.com/c-exam-pdf-2026/#flipbook-df_8227/1/', '8205' => 'https://missionncc.com/special-entry-pdf/', // भविष्य में नया कोर्स यहाँ जोड़ें (कॉमा लगाना न भूलें) ); echo '
'; echo '

⚠️ SECURITY WARNING

'; echo '

यह PDF आपकी पर्सनल आईडी से लिंक है। स्क्रीनशॉट लेना या इसे शेयर करना कानूनी अपराध है। पकड़े जाने पर आपका अकाउंट हमेशा के लिए ब्लॉक कर दिया जाएगा।

'; echo '
'; echo '

Your Digital Library

'; $has_purchased_anything = false; foreach ( $courses_data as $p_id => $p_link ) { if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $p_id ) ) { $product = wc_get_product($p_id); $has_purchased_anything = true; echo '
'; echo '
' . $product->get_name() . '
Access: Unlimited (Read-Only)
'; echo 'READ ONLINE'; echo '
'; } } if ( !$has_purchased_anything ) { echo '
'; echo '

आपने अभी तक कोई कोर्स नहीं खरीदा है।

'; echo 'Shop पर जाएँ और कोर्स खरीदें'; echo '
'; } } /** * 3. SMART SECURITY GUARD (DIRECT ACCESS PROTECTION) */ add_action( 'template_redirect', 'missionncc_universal_security_guard' ); function missionncc_universal_security_guard() { // --- यहाँ अपने पेज का 'SLUG' और उसकी 'PRODUCT ID' जोड़ें --- // फॉर्मेट: 'page-slug' => PRODUCT_ID, $protected_pages = array( 'b-exam-pdf-2026' => 8200, 'c-exam-pdf-2026' => 8233, 'special-entry-pdf' => 8205, ); foreach ( $protected_pages as $slug => $id ) { if ( is_page( $slug ) ) { $current_user = wp_get_current_user(); // एडमिन को छूट दें if ( current_user_can('administrator') ) return; // अगर यूजर लॉगिन नहीं है या खरीदा नहीं है, तो भगा दो if ( !is_user_logged_in() || !wc_customer_bought_product( $current_user->user_email, $current_user->ID, $id ) ) { wp_redirect( get_permalink( wc_get_page_id( 'myaccount' ) ) ); exit; } } } } /** * पेमेंट के बाद 'Order Received' पेज पर लाइब्रेरी का बटन दिखाना */ add_action( 'woocommerce_thankyou', 'missionncc_custom_thankyou_message', 10 ); function missionncc_custom_thankyou_message( $order_id ) { echo '
'; echo '

✅ पेमेंट सफल रहा!

'; echo '

आपकी PDF अब आपकी लाइब्रेरी में उपलब्ध है।

'; // लाइब्रेरी का लिंक echo 'GO TO MY PDF LIBRARY'; echo '
'; } /** * 1. फालतू एड्रेस फील्ड्स हटाना और नया 'Exam Selection' जोड़ना */ add_filter( 'woocommerce_checkout_fields' , 'missionncc_super_clean_checkout', 9999 ); function missionncc_super_clean_checkout( $fields ) { // इन फील्ड्स को हटाना है $billing_remove = array( 'billing_company', 'billing_address_1', 'billing_address_2', 'billing_city', 'billing_postcode', 'billing_country', 'billing_state' ); foreach( $billing_remove as $field ) { unset($fields['billing'][$field]); unset($fields['shipping'][$field]); } // एडिशनल नोट्स हटाना unset($fields['order']['order_comments']); // Exam Selection (A, B, C Certificate) नया फील्ड जोड़ना $fields['billing']['billing_exam_type'] = array( 'type' => 'select', 'label' => 'Select Your Exam Certificate', 'placeholder' => 'Select Your Certificate', 'required' => true, 'class' => array('form-row-wide'), 'priority' => 30, // नाम के बाद दिखाने के लिए 'options' => array( '' => 'Select Your Certificate', 'A Certificate' => 'A Certificate', 'B Certificate' => 'B Certificate', 'C Certificate' => 'C Certificate' ) ); return $fields; } /** * 2. Exam Certificate डेटा को सेव करना */ add_action( 'woocommerce_checkout_update_order_meta', 'missionncc_save_custom_checkout_field' ); function missionncc_save_custom_checkout_field( $order_id ) { if ( ! empty( $_POST['billing_exam_type'] ) ) { update_post_meta( $order_id, 'Exam Certificate', sanitize_text_field( $_POST['billing_exam_type'] ) ); } } /** * 3. एडमिन पैनल (Order Details) में सर्टिफिकेट दिखाना */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'missionncc_display_custom_field_admin', 10, 1 ); function missionncc_display_custom_field_admin($order){ $exam_cert = get_post_meta( $order->get_id(), 'Exam Certificate', true ); if ( $exam_cert ) { echo '

Exam Certificate: ' . $exam_cert . '

'; } } /** * 4. यूजरनेम और पासवर्ड बॉक्स को फोर्स करना (ताकि यूजर खुद बनाए) */ add_filter( 'woocommerce_checkout_registration_enabled', '__return_true' ); add_filter( 'woocommerce_registration_generate_username', '__return_false' ); add_filter( 'woocommerce_registration_generate_password', '__return_false' ); /** * 1. बटन का नाम (BUY NOW | अभी खरीदें) */ add_filter( 'woocommerce_product_single_add_to_cart_text', 'missionncc_final_btn_text' ); add_filter( 'woocommerce_product_add_to_cart_text', 'missionncc_final_btn_text' ); function missionncc_final_btn_text() { return __( 'BUY NOW | अभी खरीदें', 'woocommerce' ); } /** * 2. बटन का प्रोफेशनल डिजाइन (Premium Green Look) */ add_action('wp_head', 'missionncc_final_btn_style'); function missionncc_final_btn_style() { echo ''; } /** * 3. बटन दबाते ही सीधे चेकआउट पर भेजें */ add_filter( 'add_to_cart_redirect', 'missionncc_final_redirect' ); function missionncc_final_redirect() { return wc_get_checkout_url(); } /** * नया प्रोडक्ट कार्ट में जुड़ते ही पुराना वाला अपने आप हटा देना */ add_filter( 'woocommerce_add_to_cart_validation', 'missionncc_only_one_item_in_cart', 99, 2 ); function missionncc_only_one_item_in_cart( $passed, $added_product_id ) { wc_empty_cart(); // यह पुराने सभी प्रोडक्ट्स को कार्ट से निकाल देगा return $passed; }