PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.6
JetFormBuilder — Dynamic Blocks Form Builder v3.6.6
3.6.6.1 3.6.6 3.6.5.4 3.6.5.3 3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 134 releases
jetformbuilder / modules / actions-v2 / insert-post / properties / post-id-property.php

post-id-property.php in JetFormBuilder — Dynamic Blocks Form Builder 3.6.6, at modules/actions-v2/insert-post/properties/post-id-property.php

61 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 namespace JFB_Modules\Actions_V2\Insert_Post\Properties;
5
6 use Jet_Form_Builder\Classes\Tools;
7 use Jet_Form_Builder\Exceptions\Action_Exception;
8 use Jet_Form_Builder\Actions\Methods\Base_Object_Property;
9
10 // If this file is called directly, abort.
11 if ( ! defined( 'WPINC' ) ) {
12 die;
13 }
14
15 class Post_Id_Property extends Base_Object_Property {
16
17 public function get_id(): string {
18 return 'ID';
19 }
20
21 public function get_label(): string {
22 return __( 'Post ID (will update the post)', 'jet-form-builder' );
23 }
24
25 /**
26 * @param string $key
27 * @param $value
28 *
29 * @return bool
30 * @throws Action_Exception
31 */
32 public function can_attach( string $key, $value ): bool {
33 if ( ! parent::can_attach( $key, $value ) ) {
34 return false;
35 }
36 if ( empty( $value ) ) {
37 throw new Action_Exception( 'empty_field', esc_html( $key ) );
38 }
39
40 $post = get_post( (int) $value );
41
42 if (
43 ! is_a( $post, \WP_Post::class )
44 || (
45 absint( $post->post_author ) !== get_current_user_id()
46 && ! current_user_can( 'edit_post', $post->ID )
47 && ! Tools::is_webhook()
48 )
49 ) {
50 throw new Action_Exception(
51 'failed',
52 array(
53 'post' => $post, // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
54 )
55 );
56 }
57
58 return true;
59 }
60 }
61