post_content, 'peptide_search' ) && ! is_singular( 'peptide' ) ) { return; } psa_enqueue_frontend_assets(); } add_action( 'wp_enqueue_scripts', 'psa_maybe_enqueue_assets' ); /** * Shared helper to enqueue CSS, JS, and localize script. */ function psa_enqueue_frontend_assets() { wp_enqueue_style( 'psa-styles', PSA_PLUGIN_URL . 'assets/css/peptide-search.css', array(), PSA_VERSION ); wp_enqueue_script( 'psa-search', PSA_PLUGIN_URL . 'assets/js/peptide-search.js', array( 'jquery' ), PSA_VERSION, true ); wp_localize_script( 'psa-search', 'psaAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'psa_search_nonce' ), ) ); } /** * On the KB page, hide Echo KB search and inject ours via wp_footer. */ function psa_replace_kb_search() { if ( ! psa_is_kb_page() ) { return; } $search_html = PSA_Search::render_search_form( array( 'placeholder' => 'Search for a peptide (e.g., BPC-157, Thymosin Beta-4)...', ) ); $encoded = wp_json_encode( $search_html ); echo ''; echo ''; } add_action( 'wp_footer', 'psa_replace_kb_search' ); function psa_activate() { PSA_Post_Type::register_peptide_post_type(); flush_rewrite_rules(); } register_activation_hook( __FILE__, 'psa_activate' ); function psa_deactivate() { flush_rewrite_rules(); } register_deactivation_hook( __FILE__, 'psa_deactivate' ); function psa_get_client_ip() { $headers = array( 'HTTP_CF_CONNECTING_IP', 'REMOTE_ADDR', ); foreach ( $headers as $header ) { if ( ! empty( $_SERVER[ $header ] ) ) { $ip = explode( ',', sanitize_text_field( wp_unslash( $_SERVER[ $header ] ) ) ); $ip = trim( $ip[0] ); if ( filter_var( $ip, FILTER_VALIDATE_IP ) ) { return $ip; } } } return '0.0.0.0'; } function psa_get_admin_user_id() { $admins = get_users( array( 'role' => 'administrator', 'number' => 1, 'fields' => 'ID', ) ); return ! empty( $admins ) ? (int) $admins[0] : 0; }