PluginProbe ʕ •ᴥ•ʔ
Contact Form 7 / 5.8.5
Contact Form 7 v5.8.5
6.1.6 5.0.2 5.0.3 5.0.4 5.0.5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.2 5.2.1 5.2.2 5.3 5.3.1 5.3.2 5.4 5.4.1 5.4.2 5.5 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.6.1 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.7 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.5.1 5.7.6 5.7.7 5.8 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.9 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 6.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 trunk 1.1 1.10 1.10.0.1 1.10.1 1.2 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.5 1.6 1.6.1 1.7 1.7.1 1.7.2 1.7.4 1.7.5 1.7.6 1.7.6.1 1.7.7 1.7.7.1 1.7.8 1.8 1.8.0.1 1.8.0.2 1.8.0.3 1.8.0.4 1.8.1 1.8.1.1 1.9 1.9.1 1.9.2 1.9.2.1 1.9.2.2 1.9.3 1.9.4 1.9.5 1.9.5.1 2.0 2.0-beta 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1 2.1.1 2.1.2 2.2 2.2.1 2.3 2.3.1 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 3.0 3.0-beta 3.0.1 3.0.2 3.0.2.1 3.1 3.1.1 3.1.2 3.2 3.2.1 3.3 3.3.1 3.3.2 3.3.3 3.4 3.4.1 3.4.2 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.6 3.7 3.7.1 3.7.2 3.8 3.8.1 3.9 3.9-beta 3.9.1 3.9.2 3.9.3 4.0 4.0.1 4.0.2 4.0.3 4.1 4.1-beta 4.1.1 4.1.2 4.2 4.2-beta 4.2.1 4.2.2 4.3 4.3.1 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6 4.6.1 4.7 4.8 4.8.1 4.9 4.9.1 4.9.2 5.0 5.0.1
contact-form-7 / includes / upgrade.php
contact-form-7 / includes Last commit date
block-editor 2 years ago config-validator 2 years ago css 2 years ago js 2 years ago swv 2 years ago capabilities.php 7 years ago contact-form-functions.php 2 years ago contact-form-template.php 2 years ago contact-form.php 2 years ago controller.php 3 years ago file.php 3 years ago form-tag.php 2 years ago form-tags-manager.php 3 years ago formatting.php 2 years ago functions.php 2 years ago html-formatter.php 3 years ago integration.php 3 years ago l10n.php 3 years ago mail.php 2 years ago pipe.php 3 years ago pocket-holder.php 3 years ago rest-api.php 2 years ago shortcodes.php 3 years ago special-mail-tags.php 2 years ago submission.php 3 years ago upgrade.php 2 years ago validation-functions.php 2 years ago validation.php 3 years ago
upgrade.php
134 lines
1 <?php
2
3 add_action( 'wpcf7_upgrade', 'wpcf7_upgrade_58', 10, 2 );
4
5 /**
6 * Runs functions necessary when upgrading from old plugin versions before 5.8.
7 *
8 * @since 5.8.0 New `_config_validation` post meta is introduced.
9 */
10 function wpcf7_upgrade_58( $new_ver, $old_ver ) {
11 if ( ! version_compare( $old_ver, '5.8-dev', '<' ) ) {
12 return;
13 }
14
15 $posts = WPCF7_ContactForm::find( array(
16 'post_status' => 'any',
17 'posts_per_page' => -1,
18 ) );
19
20 foreach ( $posts as $post ) {
21 $post_id = $post->id();
22
23 // Delete the old post meta for config-validation results.
24 delete_post_meta( $post_id, '_config_errors' );
25
26 // Add the contact form hash.
27 add_post_meta( $post_id, '_hash',
28 wpcf7_generate_contact_form_hash( $post_id ),
29 true // Unique
30 );
31 }
32 }
33
34
35 add_action( 'wpcf7_upgrade', 'wpcf7_convert_to_cpt', 10, 2 );
36
37 /**
38 * Converts old data in the dedicated database table to custom posts.
39 *
40 * @since 3.0.0 `wpcf7_contact_form` CPT is introduced.
41 */
42 function wpcf7_convert_to_cpt( $new_ver, $old_ver ) {
43 global $wpdb;
44
45 if ( ! version_compare( $old_ver, '3.0-dev', '<' ) ) {
46 return;
47 }
48
49 $old_rows = array();
50
51 $table_name = $wpdb->prefix . "contact_form_7";
52
53 if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) {
54 $old_rows = $wpdb->get_results( "SELECT * FROM $table_name" );
55 } elseif ( $opt = get_option( 'wpcf7' )
56 and ! empty( $opt['contact_forms'] ) ) {
57 foreach ( (array) $opt['contact_forms'] as $key => $value ) {
58 $old_rows[] = (object) array_merge(
59 $value,
60 array( 'cf7_unit_id' => $key )
61 );
62 }
63 }
64
65 foreach ( (array) $old_rows as $row ) {
66 $q = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_old_cf7_unit_id'"
67 . $wpdb->prepare( " AND meta_value = %d", $row->cf7_unit_id );
68
69 if ( $wpdb->get_var( $q ) ) {
70 continue;
71 }
72
73 $postarr = array(
74 'post_type' => 'wpcf7_contact_form',
75 'post_status' => 'publish',
76 'post_title' => maybe_unserialize( $row->title ),
77 );
78
79 $post_id = wp_insert_post( $postarr );
80
81 if ( $post_id ) {
82 update_post_meta( $post_id, '_old_cf7_unit_id', $row->cf7_unit_id );
83
84 $metas = array(
85 'form',
86 'mail',
87 'mail_2',
88 'messages',
89 'additional_settings',
90 );
91
92 foreach ( $metas as $meta ) {
93 update_post_meta( $post_id, '_' . $meta,
94 wpcf7_normalize_newline_deep( maybe_unserialize( $row->{$meta} ) )
95 );
96 }
97 }
98 }
99 }
100
101
102 add_action( 'wpcf7_upgrade', 'wpcf7_prepend_underscore', 10, 2 );
103
104 /**
105 * Prepends an underscore to post meta keys.
106 */
107 function wpcf7_prepend_underscore( $new_ver, $old_ver ) {
108 if ( version_compare( $old_ver, '3.0-dev', '<' ) ) {
109 return;
110 }
111
112 if ( ! version_compare( $old_ver, '3.3-dev', '<' ) ) {
113 return;
114 }
115
116 $posts = WPCF7_ContactForm::find( array(
117 'post_status' => 'any',
118 'posts_per_page' => -1,
119 ) );
120
121 foreach ( $posts as $post ) {
122 $props = $post->get_properties();
123
124 foreach ( $props as $prop => $value ) {
125 if ( metadata_exists( 'post', $post->id(), '_' . $prop ) ) {
126 continue;
127 }
128
129 update_post_meta( $post->id(), '_' . $prop, $value );
130 delete_post_meta( $post->id(), $prop );
131 }
132 }
133 }
134