Files
igny8/igny8-wp-plugin-for-reference-olny/modules/help/function-testing.php
2025-11-09 10:27:02 +00:00

123 lines
4.5 KiB
PHP

<?php
/**
* ==========================
* 🔐 IGNY8 FILE RULE HEADER
* ==========================
* @file : function-testing.php
* @location : /modules/help/function-testing.php
* @type : Debug Tool
* @scope : Module Only
* @allowed : Function testing, development tools, debugging functions
* @reusability : Single Use
* @notes : Function testing interface for help module (dev-only)
*/
// Note: AJAX handlers are now registered in core/admin/ajax.php
// This file only contains the HTML interface for testing
?>
<div class="wrap">
<h1>Test Page</h1>
<p>This is a test page</p>
<h2>AJAX Text Input Test</h2>
<form id="ajax-text-form">
<input type="hidden" id="ajax_text_nonce" name="ajax_text_nonce" value="<?php echo wp_create_nonce('ajax_text_action'); ?>" />
<table class="form-table">
<tr>
<th scope="row">
<label for="ajax_text_input">Test Text Input</label>
</th>
<td>
<input type="text" id="ajax_text_input" name="ajax_text_input" value="<?php echo esc_attr(get_option('igny8_ajax_test_text', '')); ?>" class="regular-text" placeholder="Enter some text to save via AJAX" />
<p class="description">This text will be saved using AJAX without page reload</p>
</td>
</tr>
</table>
<button type="button" id="ajax-save-btn" class="button button-primary">Save Text via AJAX</button>
<button type="button" id="ajax-test-btn" class="button button-secondary">Test AJAX</button>
<span id="ajax-status" style="margin-left: 10px;"></span>
</form>
<hr>
<script type="text/javascript">
jQuery(document).ready(function($){
// Test AJAX button
$('#ajax-test-btn').click(function(e){
e.preventDefault();
$('#ajax-status').html('<span style="color: blue;">Testing AJAX...</span>');
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'igny8_test_ajax'
},
success: function(response){
if (response.success) {
$('#ajax-status').html('<span style="color: green;">✓ ' + response.data + '</span>');
} else {
$('#ajax-status').html('<span style="color: red;">✗ Test failed: ' + response.data + '</span>');
}
},
error: function(){
$('#ajax-status').html('<span style="color: red;">✗ AJAX connection failed</span>');
}
});
});
// Save AJAX button
$('#ajax-save-btn').click(function(e){
e.preventDefault();
var textValue = $('#ajax_text_input').val().trim();
if (!textValue) {
$('#ajax-status').html('<span style="color: red;">Please enter some text</span>');
return;
}
// Show loading state
$('#ajax-status').html('<span style="color: blue;">Saving...</span>');
$('#ajax-save-btn').prop('disabled', true);
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'igny8_save_ajax_text',
ajax_text_input: textValue,
ajax_text_nonce: $('#ajax_text_nonce').val()
},
success: function(response){
if (response.success) {
$('#ajax-status').html('<span style="color: green;">✓ ' + response.data + '</span>');
// Update the input field to show the saved value
$('#ajax_text_input').val(textValue);
} else {
$('#ajax-status').html('<span style="color: red;">✗ Error: ' + response.data + '</span>');
}
},
error: function(xhr, status, error){
$('#ajax-status').html('<span style="color: red;">✗ AJAX Error: ' + error + '</span>');
},
complete: function(){
$('#ajax-save-btn').prop('disabled', false);
}
});
});
});
</script>
</div>
<?php
// Note: This file is included by help.php, so no need to capture content or include layout
// The content will be captured by the parent help.php file
?>