/**
* 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 '';
}
}
/**
* 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;
}