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',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_REAL_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;
}