| @@ -583,8 +583,90 @@ | ||
| 583 | 583 | pagelayer_json_output($ret); |
| 584 | 584 | |
| 585 | 585 | } |
| 586 | 586 | |
| 587 | +// Build with AI — wrappers; generation/settings logic lives in Pagelayer_AI_Controller | |
| 588 | +add_action('wp_ajax_pagelayer_ai_generate', 'pagelayer_ai_generate'); | |
| 589 | +function pagelayer_ai_generate(){ | |
| 590 | + | |
| 591 | + check_ajax_referer('pagelayer_ajax', 'pagelayer_nonce'); | |
| 592 | + | |
| 593 | + $done = []; | |
| 594 | + | |
| 595 | + if(!current_user_can('edit_posts')){ | |
| 596 | + $done['error'][] = __pl('no_permission'); | |
| 597 | + pagelayer_json_output($done); | |
| 598 | + } | |
| 599 | + | |
| 600 | + $ctrl = Pagelayer_AI_Controller::get_instance(); | |
| 601 | + $res = $ctrl->process_generate(); | |
| 602 | + | |
| 603 | + if(is_wp_error($res)){ | |
| 604 | + $done['error'] = $res->get_error_message(); | |
| 605 | + pagelayer_json_output($done); | |
| 606 | + } | |
| 607 | + | |
| 608 | + $done = is_array($res) ? $res : []; | |
| 609 | + if(!isset($done['success'])){ | |
| 610 | + $done['success'] = true; | |
| 611 | + } | |
| 612 | + pagelayer_json_output($done); | |
| 613 | +} | |
| 614 | + | |
| 615 | +add_action('wp_ajax_pagelayer_ai_settings', 'pagelayer_ai_settings'); | |
| 616 | +function pagelayer_ai_settings(){ | |
| 617 | + | |
| 618 | + check_ajax_referer('pagelayer_ajax', 'pagelayer_nonce'); | |
| 619 | + | |
| 620 | + $done = []; | |
| 621 | + | |
| 622 | + if(!current_user_can('edit_posts')){ | |
| 623 | + $done['error'][] = __pl('no_permission'); | |
| 624 | + pagelayer_json_output($done); | |
| 625 | + } | |
| 626 | + | |
| 627 | + $ctrl = Pagelayer_AI_Controller::get_instance(); | |
| 628 | + $res = $ctrl->process_get_settings(); | |
| 629 | + | |
| 630 | + if(is_wp_error($res)){ | |
| 631 | + $done['error'] = $res->get_error_message(); | |
| 632 | + pagelayer_json_output($done); | |
| 633 | + } | |
| 634 | + | |
| 635 | + $done = is_array($res) ? $res : []; | |
| 636 | + if(!isset($done['success'])){ | |
| 637 | + $done['success'] = true; | |
| 638 | + } | |
| 639 | + pagelayer_json_output($done); | |
| 640 | +} | |
| 641 | + | |
| 642 | +add_action('wp_ajax_pagelayer_ai_save_settings', 'pagelayer_ai_save_settings'); | |
| 643 | +function pagelayer_ai_save_settings(){ | |
| 644 | + | |
| 645 | + check_ajax_referer('pagelayer_ajax', 'pagelayer_nonce'); | |
| 646 | + | |
| 647 | + $done = []; | |
| 648 | + | |
| 649 | + if(!current_user_can('edit_posts')){ | |
| 650 | + $done['error'][] = __pl('no_permission'); | |
| 651 | + pagelayer_json_output($done); | |
| 652 | + } | |
| 653 | + | |
| 654 | + $ctrl = Pagelayer_AI_Controller::get_instance(); | |
| 655 | + $res = $ctrl->process_save_settings(); | |
| 656 | + | |
| 657 | + if(is_wp_error($res)){ | |
| 658 | + $done['error'] = $res->get_error_message(); | |
| 659 | + pagelayer_json_output($done); | |
| 660 | + } | |
| 661 | + | |
| 662 | + $done = is_array($res) ? $res : []; | |
| 663 | + if(!isset($done['success'])){ | |
| 664 | + $done['success'] = true; | |
| 665 | + } | |
| 666 | + pagelayer_json_output($done); | |
| 667 | +} | |
| 668 | + | |
| 587 | 669 | // Update Post content |
| 588 | 670 | add_action('wp_ajax_pagelayer_save_content', 'pagelayer_save_content'); |
| 589 | 671 | function pagelayer_save_content(){ |
| 590 | 672 | |