Post Author IP
This plugin records the IP address of the original post author when a post first gets created. The admin listing of posts is amended with a new “Author IP” column that shows the IP address of the author who first saved the post. The plugin is unable to provide IP address information for posts that were created prior to the use of this plugin. Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage Hooks The plugin is further customizable via four filters. Typically, code making use of filters should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain). c2c_show_post_author_ip_column (filter) The ‘c2c_show_post_author_ip_column’ filter allows you to determine if the post author IP column should appear in the admin post listing table. Your hooking function can be sent 1 argument: Argument : $show_column (bool) Should the column be shown? Default true. Example: /** * Don't show the post author IP column except to admins. * * @param bool $show_column Should the column be shown? Default true. * @return bool */ function post_author_ip_column_admin_only( $show ) { if ( ! current_user_can( 'manage_options' ) ) { $show = false; } return $show; } add_filter( 'c2c_show_post_author_ip_column', 'post_author_ip_column_admin_only' ); c2c_get_post_author_ip (filter) The ‘c2c_get_post_author_ip’ filter allows you to customize the value stored as the post author IP address. Your hooking function can be sent 2 arguments: Arguments : $ip (string) The post author IP address. $post_id (int) The post ID. Example: /** * Store all IP addresses from local subnet IP addresses as the same IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_get_current_user_ip (filter) The ‘c2c_get_current_user_ip’ filter allows you to customize the current user’s IP address, as used by the plugin. Your hooking function can be sent 1 argument: Argument : $ip (string) The post author IP address. Example: /** * Overrides localhost IP address. * * @param string $ip The post author IP address. * @param int $post_id The post ID. * @return string */ function customize_post_author_ip( $ip, $post_id ) { if ( 0 === strpos( $ip, '192.168.' ) ) { $ip = '192.168.1.1'; } return $ip; } add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 ); c2c_post_author_ip_allowed (filter) The ‘c2c_post_author_ip_allowed’ filter allows you to determine on a per-post basis if the post author IP should be stored. Your hooking function can be sent 3 arguments: Arguments : $allowed (bool) Can post author IP be saved for post? Default true. $post_id (int) The post ID. $ip (string) The post author IP address. Example: /** * Don't bother storing localhost IP addresses. * * @param bool $allowed Can post author IP be saved for post? Default true. * @param int $post_id The post ID. * @param string $ip The post author IP address. * @return string */ function disable_localhost_post_author_ips( $allowed, $post_id, $ip ) { if ( $allowed && 0 === strpos( $ip, '192.168.' ) ) { $allowed = false; } return $allowed; } add_filter( 'c2c_post_author_ip_allowed', 'disable_localhost_post_author_ips', 10, 3 );
Top keywords
- ip52×9.15%
- post48×8.45%
- author34×5.99%
- post author30×5.28%
- author ip25×4.40%
- post author ip23×4.05%
- address13×2.29%
- id13×2.29%
- ip address13×2.29%
- post id13×2.29%
- filter12×2.11%
- column11×1.94%
Sajjetti – AI Audit
Sajjetti – AI Audit is a security-first code scanner for WordPress plugins and themes. It performs static analysis of PHP, HTML, CSS, and JS files to detect vulnerabilities, performance issues, and coding standard problems before they become real risks. Privacy by design – Nothing runs automatically; all scans are triggered manually by the site owner. – Files are analyzed statically — never executed. – Remote analysis is disabled by default. No code leaves your site until you explicitly enable “Allow remote analysis” in Settings. – When enabled, selected file contents are sent securely over HTTPS to the Sajjetti API. Analysis data is temporary and discarded after results are returned. – Complies with WordPress.org privacy and consent guidelines. What it helps you find – Security: unescaped output, missing nonces and capability checks, unsafe file operations, risky SQL patterns, and other common vulnerabilities. – Performance: expensive loops, heavy queries, oversized assets, and inefficient patterns that slow down page loads. – Code quality and compatibility: deprecated APIs, version-specific pitfalls, and conflicts with WordPress coding standards. Optional AI assistance When remote analysis is enabled, the Sajjetti API provides AI-powered suggestions with context-specific recommendations. Results are presented with file-by-file drill-down, risk levels, and actionable insights. Human review is always recommended before making changes. Key Features Detects vulnerabilities, warnings, and performance issues Provides optional AI-assisted analysis with actionable suggestions Offers file-by-file drill-down and detailed reports Built with a security-first design, including VIP-compliant validation and sanitization Security Considerations All scans are user-initiated; nothing runs automatically. File contents are analyzed statically (never executed). REST endpoints require capability checks and nonces. All external requests use HTTPS with nonce and referer validation. Uninstall removes plugin data (options and tables) cleanly. All user-facing strings are escaped and translatable. Pricing and API Access The plugin includes a small allowance of free scans. Additional scans require an API key, available through a paid subscription. Privacy When you initiate a scan with remote analysis enabled, this plugin may transmit selected file contents (Base64-encoded PHP, HTML, CSS, and JS), limited file metadata (filename, relative path, size, cryptographic hash such as SHA-256), your site IP address and URL (for license validation), and your Sajjetti API username to the Sajjetti API for static analysis. No WordPress user account data, passwords, or database content is transmitted or stored. Temporary analysis data is deleted after results are returned. For details, see the included privacy.md file. Remote analysis is disabled by default. Scans cannot start until the site owner explicitly enables Allow remote analysis in Settings. External services This plugin connects to the Sajjetti Hub API (https://sajjetti.ai) to validate license status, manage usage limits, upload code snippets for analysis, and fetch audit results. Data sent: – License key and username when validating or checking usage. – Website URL and IP address when validating usage. – Selected PHP/JS/CSS source files when submitting for auditing. Data returned: – License type and remaining file quota. – Audit results (security, performance, and code quality insights). Legal & Privacy: – Terms of Service: https://sajjetti.ai/terms-of-service/ – Privacy Policy: https://sajjetti.ai/privacy-policy/