├── css └── admin.css ├── email └── gift_membership_code.html ├── includes ├── admin.php ├── functions.php └── pmpro-gift-levels.php ├── languages ├── pmpro-woocommerce-ca.mo ├── pmpro-woocommerce-ca.po ├── pmpro-woocommerce-de.mo ├── pmpro-woocommerce-de.po ├── pmpro-woocommerce-en_GB.mo ├── pmpro-woocommerce-en_GB.po ├── pmpro-woocommerce-en_ZA.mo ├── pmpro-woocommerce-en_ZA.po ├── pmpro-woocommerce-es.mo ├── pmpro-woocommerce-es.po ├── pmpro-woocommerce-nl.mo ├── pmpro-woocommerce-nl.po ├── pmpro-woocommerce-nl_BE.mo ├── pmpro-woocommerce-nl_BE.po ├── pmpro-woocommerce-pt_BR.mo ├── pmpro-woocommerce-pt_BR.po ├── pmpro-woocommerce-ru.mo ├── pmpro-woocommerce-ru.po ├── pmpro-woocommerce-sk.mo ├── pmpro-woocommerce-sk.po ├── pmpro-woocommerce-sv.mo ├── pmpro-woocommerce-sv.po ├── pmpro-woocommerce.mo ├── pmpro-woocommerce.po └── pmpro-woocommerce.pot ├── pmpro-woocommerce.php └── readme.txt /css/admin.css: -------------------------------------------------------------------------------- 1 | 2 | #woocommerce-product-data ul.wc-tabs li.pmprowoo_tab a::before { 3 | font-family: Dashicons; 4 | content: "\f307"; 5 | } 6 | 7 | .pmprowoo_options_group-membership_product h3, 8 | .pmprowoo_options_group-membership_discount h3 { 9 | padding: 0 12px; 10 | } 11 | -------------------------------------------------------------------------------- /email/gift_membership_code.html: -------------------------------------------------------------------------------- 1 |

Hi !!name!!

2 |

You've been gifted !!gift_product!! at !!sitename!!.

3 |

Gift Code: !!membership_gift_code!!

4 |

Use the gift code at Checkout here: !!levels_link!!

5 |

Enjoy
!!sitename!!

6 | -------------------------------------------------------------------------------- /includes/admin.php: -------------------------------------------------------------------------------- 1 | ' . esc_html__( 'Docs', 'pmpro-woocommerce' ) . '', 14 | '' . esc_html__( 'Support', 'pmpro-woocommerce' ) . '', 15 | ); 16 | $links = array_merge( $links, $new_links ); 17 | } 18 | 19 | return $links; 20 | } 21 | 22 | add_filter( 'plugin_row_meta', 'pmprowoo_plugin_row_meta', 10, 2 ); -------------------------------------------------------------------------------- /includes/functions.php: -------------------------------------------------------------------------------- 1 | get_user_id() : null; 24 | $order_items = is_object( $order ) ? $order->get_items() : array(); 25 | 26 | // If there are no membership products or items in the order, return an empty array. 27 | if( empty( $pmprowoo_product_levels ) || ( empty( $order_user_id ) && !empty( $order_items ) ) ) { 28 | return $membership_products; 29 | } 30 | 31 | // Get membership product IDs. 32 | $membership_product_ids = array_keys($pmprowoo_product_levels); 33 | 34 | // Are there any membership products? 35 | foreach( $order_items as $item ) { 36 | if( $item['product_id'] > 0 && in_array( $item['product_id'], $membership_product_ids) ) //not sure when a product has id 0, but the Woo code checks this 37 | $membership_products[] = $item['product_id']; 38 | } 39 | 40 | return $membership_products; 41 | } 42 | 43 | /** 44 | * Search the cart for previously selected membership product 45 | * 46 | * @return bool 47 | */ 48 | function pmprowoo_cart_has_membership() { 49 | 50 | global $pmprowoo_product_levels; 51 | $has_membership = false; 52 | 53 | $cart_items = is_object( WC()->cart ) ? WC()->cart->get_cart_contents() : array(); 54 | 55 | foreach ( $cart_items as $cart_item ) { 56 | $has_membership = $has_membership || in_array( $cart_item['product_id'], array_keys( $pmprowoo_product_levels ) ); 57 | } 58 | 59 | return $has_membership; 60 | } 61 | 62 | /** 63 | * Returns whether a user has an active WooCommerce product that gives membership 64 | * access to a given PMPro level. 65 | * 66 | * @param int $user_id user whose orders to check. 67 | * @param int $level_id to search for in active orders. 68 | * @return boolean 69 | */ 70 | function pmprowoo_user_has_active_membership_product_for_level( $user_id, $level_id ) { 71 | global $pmprowoo_product_levels; 72 | if ( ! empty( $pmprowoo_product_levels ) ) { 73 | $user = get_userdata( intval( $user_id ) ); 74 | foreach ( $pmprowoo_product_levels as $product_id => $product_level_id ) { 75 | if ( intval( $level_id ) === intval( $product_level_id ) ) { 76 | $product = get_product( $product_id ); 77 | if ( ! empty( $product ) && is_object( $product ) && method_exists( $product, 'is_type' ) ) { 78 | if ( $product->is_type( array( 'subscription', 'variable-subscription', 'subscription_variation' ) ) ) { 79 | if ( function_exists( 'wcs_user_has_subscription' ) && wcs_user_has_subscription( $user_id, $product_id, array( 'active', 'pending-cancel' ) ) ) { 80 | return true; 81 | } 82 | } else { 83 | if ( wc_customer_bought_product( $user->ID, $user->data->user_email, intval( $product_id ) ) ) { 84 | return true; 85 | } 86 | } 87 | } 88 | } 89 | } 90 | } 91 | return false; 92 | } 93 | -------------------------------------------------------------------------------- /includes/pmpro-gift-levels.php: -------------------------------------------------------------------------------- 1 | get_id(); 30 | 31 | $gift_membership_code = get_post_meta( $product_id, '_gift_membership_code', true); 32 | $gift_membership_email_option = get_post_meta($product_id, '_gift_membership_email_option', true); 33 | 34 | if(!empty($gift_membership_code) && !empty($gift_membership_email_option)){ 35 | if($gift_membership_email_option == '1'){ 36 | echo ' 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
'; 48 | }elseif($gift_membership_email_option == '3'){ 49 | echo ' 50 | 51 | 52 | 53 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
'; 69 | echo ""; 86 | } 87 | } 88 | 89 | } 90 | add_action( 'woocommerce_before_add_to_cart_button', 'pmprowoo_gift_levels_add_recipient_fields' ); 91 | 92 | 93 | /* 94 | Validate Frontend fields for Gift Membership.. 95 | */ 96 | function pmprowoo_gift_levels_recipient_fields_validation($passed, $product_id) { 97 | global $woocommerce; 98 | 99 | $gift_membership_code = get_post_meta($product_id, '_gift_membership_code', true); 100 | $gift_membership_email_option = get_post_meta($product_id, '_gift_membership_email_option', true); 101 | 102 | if(!empty($gift_membership_code) && !empty($gift_membership_email_option)){ 103 | if($gift_membership_email_option == '3' && ( ! isset( $_REQUEST['gift-send-email'] ) || $_REQUEST['gift-send-email'] == '' ) ){ 104 | wc_add_notice( esc_html__( 'Please select option for Send Email to Recipient', 'pmpro-woocommerce' ), 'error' ); 105 | return false; 106 | } 107 | if(($gift_membership_email_option == '1') || ( $_REQUEST['gift-send-email'] == '1' ) ){ 108 | if ( empty( $_REQUEST['gift-recipient-name'] ) ) { 109 | wc_add_notice( esc_html__( 'Please enter a NAME of Recipient', 'pmpro-woocommerce' ), 'error' ); 110 | return false; 111 | } 112 | if ( empty( $_REQUEST['gift-recipient-email'] ) ) { 113 | wc_add_notice( esc_html__( 'Please enter a EMAIL of Recipient', 'pmpro-woocommerce' ), 'error' ); 114 | return false; 115 | } 116 | } 117 | } 118 | return true; 119 | } 120 | add_action( 'woocommerce_add_to_cart_validation', 'pmprowoo_gift_levels_recipient_fields_validation', 1, 2 ); 121 | 122 | 123 | /* 124 | Save Frontend fields for Gift Membership. 125 | */ 126 | function pmprowoo_gift_levels_save_recipient_fields( $cart_item_data, $product_id ) { 127 | 128 | if( isset( $_REQUEST['gift-recipient-name'] ) ) { 129 | if( !empty( $_REQUEST['gift-recipient-name'] ) ){ 130 | $cart_item_data[ 'gift_recipient_name' ] = sanitize_text_field( $_REQUEST['gift-recipient-name'] ); 131 | $cart_item_data['unique_key'] = md5( microtime().rand() ); 132 | } 133 | } 134 | if( isset( $_REQUEST['gift-recipient-email'] ) ) { 135 | if( !empty( $_REQUEST['gift-recipient-email'] ) ){ 136 | $cart_item_data[ 'gift_recipient_email' ] = sanitize_email( $_REQUEST['gift-recipient-email'] ); 137 | $cart_item_data['unique_key'] = md5( microtime().rand() ); 138 | } 139 | } 140 | return $cart_item_data; 141 | } 142 | add_action( 'woocommerce_add_cart_item_data', 'pmprowoo_gift_levels_save_recipient_fields', 10, 2 ); 143 | 144 | /* 145 | Show Frontend fields for Gift Membership in Cart. 146 | */ 147 | function pmprowoo_gift_levels_render_on_cart_and_checkout( $cart_data, $cart_item = null ) { 148 | $custom_items = array(); 149 | 150 | if( !empty( $cart_data ) ) { 151 | $custom_items = $cart_data; 152 | } 153 | if( isset( $cart_item['gift_recipient_name'] ) ) { 154 | $custom_items[] = array( "name" => esc_html__( 'Recipient Name', 'pmpro-woocommerce' ), "value" => $cart_item['gift_recipient_name'] ); 155 | 156 | } 157 | if( isset( $cart_item['gift_recipient_email'] ) ) { 158 | $custom_items[] = array( "name" => esc_html__( 'Recipient Email', 'pmpro-woocommerce' ), "value" => $cart_item['gift_recipient_email'] ); 159 | 160 | } 161 | return $custom_items; 162 | } 163 | add_filter( 'woocommerce_get_item_data', 'pmprowoo_gift_levels_render_on_cart_and_checkout', 10, 2 ); 164 | 165 | /* 166 | Add Frontend fields for Gift Membership to Order meta. 167 | */ 168 | function gift_membership_order_meta_handler( $item_id, $cart_item, $order_id ) { 169 | 170 | if( isset( $cart_item->legacy_values['gift_recipient_name'] ) ) { 171 | wc_add_order_item_meta( $item_id, 'Recipient Name', $cart_item->legacy_values['gift_recipient_name'] ); 172 | } 173 | if( isset( $cart_item->legacy_values['gift_recipient_email'] ) ) { 174 | wc_add_order_item_meta( $item_id, 'Recipient Email', $cart_item->legacy_values['gift_recipient_email'] ); 175 | } 176 | } 177 | add_action( 'woocommerce_new_order_item', 'gift_membership_order_meta_handler', 10, 3 ); 178 | 179 | /* 180 | Add gift membership code after order is completed. 181 | */ 182 | function pmprowoo_add_gift_code_from_order($order_id) 183 | { 184 | global $wpdb, $pmprowoo_gift_codes; 185 | 186 | //don't bother if array is empty 187 | if(empty($pmprowoo_gift_codes)) 188 | return; 189 | 190 | /* 191 | does this order contain a gift membership code? 192 | */ 193 | //gift membership code product ids 194 | $product_ids = array_keys($pmprowoo_gift_codes); 195 | 196 | //get order 197 | $order = new WC_Order($order_id); 198 | $items = $order->get_items(); 199 | 200 | //does the order have some products? 201 | if(sizeof($items) > 0) 202 | { 203 | foreach($items as $item_id => $item) 204 | { 205 | if($item['product_id'] > 0) //not sure when a product has id 0, but the Woo code checks this 206 | { 207 | //is there a gift membership code for this product? 208 | if(in_array($item['product_id'], $product_ids)) 209 | { 210 | 211 | /* 212 | Create Gift Code 213 | */ 214 | 215 | //get selected gifted discount code id 216 | $gift_code_id = $pmprowoo_gift_codes[$item['product_id']]; 217 | 218 | // get discount code level to copy 219 | $gift_level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_discount_codes_levels WHERE code_id = '" . esc_sql( $gift_code_id ) . "' LIMIT 1"); 220 | if(!$gift_level){ 221 | //possibly add an error if coupon code doesn't exist 222 | return; 223 | } 224 | 225 | 226 | //create new gift code 227 | $code = "GIFT" . rand(1, 99) . pmpro_getDiscountCode(); //added rand to code to make it unique for multiple gift orders 228 | $starts = current_time( 'Y-m-d', 0 ); 229 | $expires = date("Y-m-d", strtotime("+1 year")); 230 | $sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes (code, starts, expires, uses) VALUES('" . esc_sql($code) . "', '" . esc_sql( $starts ) . "', '" . esc_sql( $expires ) . "', '1')"; 231 | 232 | if($wpdb->query($sqlQuery) !== false){ 233 | //get id of new code 234 | $code_id = $wpdb->insert_id; 235 | 236 | //add code to level 237 | $sqlQuery = "INSERT INTO $wpdb->pmpro_discount_codes_levels (code_id, level_id, initial_payment, billing_amount, cycle_number, cycle_period, billing_limit, trial_amount, trial_limit, expiration_number, expiration_period) VALUES( 238 | '" . esc_sql($code_id) . "', 239 | '" . esc_sql($gift_level->level_id) . "', 240 | '" . esc_sql($gift_level->initial_payment) . "', 241 | '" . esc_sql($gift_level->billing_amount) . "', 242 | '" . esc_sql($gift_level->cycle_number) . "', 243 | '" . esc_sql($gift_level->cycle_period) . "', 244 | '" . esc_sql($gift_level->billing_limit) . "', 245 | '" . esc_sql($gift_level->trial_amount) . "', 246 | '" . esc_sql($gift_level->trial_limit) . "', 247 | '" . esc_sql($gift_level->expiration_number) . "', 248 | '" . esc_sql($gift_level->expiration_period) . "')"; 249 | $wpdb->query($sqlQuery); 250 | 251 | /* Add Code to Order Meta */ 252 | wc_add_order_item_meta( $item_id, "Gift Code", $code ); 253 | 254 | /* 255 | //Email Gift Code 256 | // Tag: !!gift_product!! => Title of the Product 257 | // Tag: !!membership_gift_code!! => Generated Gift Code 258 | */ 259 | $recipient_name = wp_strip_all_tags($item['Recipient Name']); 260 | $recipient_email = wp_strip_all_tags($item['Recipient Email']); 261 | 262 | if(!empty($recipient_email)){ 263 | 264 | // Send Email to Recipient 265 | $pmproemail = new PMProEmail(); 266 | $pmproemail->email = $recipient_email; 267 | $pmproemail->subject = sprintf( esc_html__("A Gift from %s", 'pmpro-woocommerce'), get_option('blogname')); 268 | $pmproemail->template = 'gift_membership_code'; 269 | 270 | $pmproemail->data = array("subject" => $pmproemail->subject, "name" => $recipient_name, "user_login" => '', "sitename" => get_option("blogname"), "membership_id" => '', "membership_level_name" => '', "siteemail" => get_option("pmpro_from_email"), "login_link" => '', "enddate" => '', "display_name" => $recipient_name, "user_email" => $recipient_email, "gift_product" => $item['name'], "membership_gift_code" => $code, "body" => pmpro_loadTemplate('gift_membership_code','local','email','html')); 271 | 272 | if($pmproemail->sendEmail() == false){ 273 | $message = sprintf( __( 'Gift Email FAILED To Recipient %s. Contact Site Admin.', 'pmpro-woocommerce' ), $recipient_email ); 274 | global $phpmailer; 275 | if (isset($phpmailer)) { 276 | $message .= ' ' . $phpmailer->ErrorInfo; 277 | } 278 | } else { 279 | $message = sprintf( esc_html__( 'Gift Email Sent To Recipient %s', 'pmpro-woocommerce' ), $recipient_email ); 280 | } 281 | 282 | if ( function_exists('wc_add_notice') ) { 283 | wc_add_notice( $message, $notice_type = 'success' ); 284 | } 285 | 286 | } else { 287 | 288 | // If no Recipient Send Email to Customer 289 | $pmproemail = new PMProEmail(); 290 | $pmproemail->email = $order->get_billing_email(); 291 | $pmproemail->subject = sprintf( esc_html__("A Gift from %s", 'pmpro-woocommerce'), get_option("blogname")); 292 | $pmproemail->template = 'gift_membership_code'; 293 | 294 | $pmproemail->data = array("subject" => $pmproemail->subject, "name" => $order->get_billing_first_name(), "user_login" => '', "sitename" => get_option("blogname"), "membership_id" => '', "membership_level_name" => '', "siteemail" => get_option("pmpro_from_email"), "login_link" => '', "enddate" => '', "display_name" => $order->get_billing_first_name(), "user_email" => $order->get_billing_email(), "gift_product" => $item['name'], "membership_gift_code" => $code, "body" => pmpro_loadTemplate('gift_membership_code','local','email','html')); 295 | 296 | if($pmproemail->sendEmail() == false){ 297 | $message = sprintf( __( 'Gift Email FAILED To %s. Contact Site Admin.', 'pmpro-woocommerce' ), $order->get_billing_email() ); 298 | global $phpmailer; 299 | if (isset($phpmailer)) { 300 | $message .= ' ' . $phpmailer->ErrorInfo; 301 | } 302 | } else { 303 | $message = sprintf( esc_html__( 'Gift Email Sent To %s', 'pmpro-woocommerce' ), $order->get_billing_email() ); 304 | } 305 | 306 | if ( function_exists('wc_add_notice') ) { 307 | wc_add_notice( $message, $notice_type = 'success' ); 308 | } 309 | 310 | } 311 | 312 | } 313 | 314 | } 315 | } 316 | } 317 | } 318 | } 319 | add_action("woocommerce_order_status_completed", "pmprowoo_add_gift_code_from_order"); 320 | 321 | /** 322 | * Add gift level-related options in the PMPro WooCommerce tab of the edit product page. 323 | */ 324 | function pmprowoo_extra_tab_options_for_gift_levels() { 325 | global $wpdb; 326 | 327 | // Get Discount Codes List 328 | $codes_sqlQuery = "SELECT *, UNIX_TIMESTAMP(starts) as starts, UNIX_TIMESTAMP(expires) as expires FROM $wpdb->pmpro_discount_codes "; 329 | $codes_sqlQuery .= "WHERE `code` NOT LIKE 'GIFT%' ORDER BY id ASC"; 330 | $codes = $wpdb->get_results($codes_sqlQuery, OBJECT); 331 | 332 | $gift_membership_code_options = array(); 333 | if(!$codes) { 334 | $gift_membership_code_options[0] = esc_html__( 'No Discount Codes Created', 'pmpro-woocommerce' ); 335 | } else { 336 | $gift_membership_code_options[0] = esc_html__( 'None', 'pmpro-woocommerce' ); 337 | foreach($codes as $code) { 338 | $key = $code->id; 339 | $gift_membership_code_options[$key] = $code->code; 340 | } 341 | } 342 | ?> 343 |
344 |

345 |
346 | '_gift_membership_code', 351 | 'label' => esc_html__( 'Select Discount Code', 'pmpro-woocommerce' ), 352 | 'options' => $gift_membership_code_options, //Escaped further up. 353 | 'desc_tip' => 'true', 354 | 'description' => esc_html__( 'Upon each purchase a new one-time use code (which start with "GIFT") will be created from the code selected here.', 'pmpro-woocommerce' ) 355 | ) 356 | ); 357 | 358 | // Recipient Email 359 | woocommerce_wp_select( 360 | array( 361 | 'id' => '_gift_membership_email_option', 362 | 'label' => esc_html__( 'Email Recipient', 'pmpro-woocommerce' ), 363 | 'options' => array( 364 | '1' => esc_html__( 'Yes', 'pmpro-woocommerce' ), 365 | '0' => esc_html__( 'No', 'pmpro-woocommerce' ), 366 | '3' => esc_html__( 'Customer Decides', 'pmpro-woocommerce' ) 367 | ), 368 | 'desc_tip' => 'true', 369 | 'description' => esc_html__( 'Decide if a recipient email is entered and the code is emailed upon successful purchase.', 'pmpro-woocommerce' ) 370 | ) 371 | ); 372 | ?> 373 |

374 |
375 | \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:10+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "Seleccioneu l'opció per enviar un correu electrònic al destinatari" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "Voleu aplicar descomptes per a membres als productes de subscripció i afiliació de WooCommerce?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Establiu el preu personalitzat en funció del nivell d'afiliació. Editeu els vostres nivells d'afiliació per establir un percentatge de descompte global per a tots els productes." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Completa automàticament via PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Sí" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "No" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Descompte per a afiliacions (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Estableix un descompte d'afiliació per a aquest nivell que s'aplicarà quan un usuari amb aquest nivell d'afiliació entri. El descompte s'aplica al preu normal del producte, al preu rebaixat o al preu específic del nivell establert a la pàgina d'edició del producte." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Estableix el descompte d'afiliació" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Preus de descompte per a membres" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Marqueu això per marcar la comanda com a completada immediatament després de pagar per activar l'afiliació associada." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Completa automàticament l'estat de les comandes" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Producte d'afiliació" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Doneu als clients un nivell d'afiliació" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Afiliació" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Cistella" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Només podeu afegir una afiliació a la vostra %scistella%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Decidiu si s'introdueix un correu electrònic de destinatari i el codi s'envia per correu electrònic després d'una compra correcta." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Destinatari del correu electrònic" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "En cada compra, es crearà un nou codi d'ús únic (que comença amb «GIFT») a partir del codi seleccionat aquí." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Seleccioneu el codi de descompte" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Regaleu una afiliació" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Un regal de %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Introduïu un CORREU ELECTRÒNIC del destinatari" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Introduïu un NOM del destinatari" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "Voleu enviar el correu electrònic al destinatari?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Correu electrònic del destinatari" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Nom del destinatari" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Suport" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Visiteu el fòrum de suport al client" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Documentació" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Consulteu la documentació" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-de.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-de.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-de.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:10+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Lege den benutzerdefinierten Preis basierend auf dem Mitgliedschaftslevel fest. Bearbeite deine Mitgliedschaftslevel, um einen globalen Prozentrabatt für alle Produkte festzulegen." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Autocomplete via PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Ja" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Nein" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Mitgliedschaftsrabatt (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Lege einen Mitgliedschaftsrabatt für den Level fest, der angewendet wird, wenn ein Benutzer mit dieser Mitgliedschaftsstufe angemeldet ist. Der Rabatt wird auf den regulären Preis, Verkaufspreis oder den level-spezifischen Preis des Produkts angewendet, der auf der Produktseite festgelegt ist." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Festlegen des Mitgliedschaftsrabatts" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Preisgestaltung für Mitglieder" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Aktiviere diese Option, um den Auftrag unmittelbar nach dem Auschecken als abgeschlossen zu markieren, um die zugehörige Mitgliedschaft zu aktivieren." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Auftragsstatus automatisch abschließen" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Mitgliedschaftsprodukt" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Kunden einen Mitgliedschaftslevel geben" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Mitgliedschaft" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Einkaufswagen" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Du kannst nur eine Mitgliedschaft zu deinem %sWarenkorb%s hinzufügen." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Entscheide, ob eine Empfänger-E-Mail eingegeben wird und der Code beim erfolgreichen Kauf per E-Mail gesendet wird." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "E-Mail Empfänger" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Bei jedem Kauf wird aus dem hier ausgewählten Code ein neuer einmaliger Nutzungscode (der mit \"GIFT\" beginnt) erstellt." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Rabattcode auswählen" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Mitgliedschaft verschenken" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Ein Geschenk von %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Bitte gib eine EMAIL des Empfängers ein" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Bitte gib einen NAMEN des Empfängers ein" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "E-Mail an Empfänger senden?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Empfänger E-Mail" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Name des Empfängers" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Support" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Kundensupport-Forum aufrufen" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Dokumentation" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Dokumentation anzeigen" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-en_GB.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-en_GB.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-en_GB.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:10+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:555 18 | msgid " Price" 19 | msgstr " Price" 20 | 21 | #: includes/pmpro-gift-levels.php:255 22 | #: includes/pmpro-gift-levels.php:276 23 | #: includes/pmpro-gift-levels.php:279 24 | #: includes/pmpro-gift-levels.php:264 25 | #: includes/pmpro-gift-levels.php:288 26 | #: includes/pmpro-gift-levels.php:267 27 | #: includes/pmpro-gift-levels.php:291 28 | #, php-format 29 | msgid "A Gift from %s" 30 | msgstr "A Gift from %s" 31 | 32 | #: pmpro-woocommerce.php:681 33 | msgid "Apply Member Discounts to WC Subscription Products?" 34 | msgstr "Apply Member Discounts to WC Subscription Products?" 35 | 36 | #: pmpro-woocommerce.php:539 37 | #: pmpro-woocommerce.php:548 38 | #: pmpro-woocommerce.php:567 39 | #: pmpro-woocommerce.php:594 40 | #: pmpro-woocommerce.php:635 41 | #: pmpro-woocommerce.php:640 42 | msgid "Autocomplete Order Status" 43 | msgstr "Autocomplete Order Status" 44 | 45 | #: pmpro-woocommerce.php:878 46 | #: pmpro-woocommerce.php:892 47 | #: pmpro-woocommerce.php:871 48 | #: pmpro-woocommerce.php:901 49 | #: pmpro-woocommerce.php:930 50 | #: pmpro-woocommerce.php:971 51 | #: pmpro-woocommerce.php:976 52 | msgid "Autocomplete via PMPro WooCommerce." 53 | msgstr "Autocomplete via PMPro WooCommerce." 54 | 55 | #: pmpro-woocommerce.php:107 56 | #: pmpro-woocommerce.php:112 57 | #: pmpro-woocommerce.php:117 58 | #: pmpro-woocommerce.php:153 59 | #: pmpro-woocommerce.php:158 60 | #: pmpro-woocommerce.php:163 61 | msgid "Cart" 62 | msgstr "Cart" 63 | 64 | #: pmpro-woocommerce.php:540 65 | #: pmpro-woocommerce.php:549 66 | #: pmpro-woocommerce.php:568 67 | #: pmpro-woocommerce.php:595 68 | #: pmpro-woocommerce.php:636 69 | #: pmpro-woocommerce.php:641 70 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 71 | msgstr "Check this to mark the order as completed immediately after checkout to activate the associated membership." 72 | 73 | #: includes/pmpro-gift-levels.php:350 74 | #: includes/pmpro-gift-levels.php:357 75 | #: includes/pmpro-gift-levels.php:366 76 | #: includes/pmpro-gift-levels.php:369 77 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 78 | msgstr "Decide if a recipient email is entered and the code is emailed upon successful purchase." 79 | 80 | #: includes/admin.php:13 81 | msgid "Docs" 82 | msgstr "Docs" 83 | 84 | #: includes/pmpro-gift-levels.php:343 85 | #: includes/pmpro-gift-levels.php:350 86 | #: includes/pmpro-gift-levels.php:359 87 | #: includes/pmpro-gift-levels.php:362 88 | msgid "Email Recipient" 89 | msgstr "Email Recipient" 90 | 91 | #: includes/pmpro-gift-levels.php:326 92 | #: includes/pmpro-gift-levels.php:333 93 | #: includes/pmpro-gift-levels.php:342 94 | #: includes/pmpro-gift-levels.php:345 95 | msgid "Gift a Membership" 96 | msgstr "Gift a Membership" 97 | 98 | #: pmpro-woocommerce.php:517 99 | #: pmpro-woocommerce.php:526 100 | #: pmpro-woocommerce.php:545 101 | #: pmpro-woocommerce.php:569 102 | #: pmpro-woocommerce.php:610 103 | #: pmpro-woocommerce.php:615 104 | msgid "Give Customers a Membership Level" 105 | msgstr "Give Customers a Membership Level" 106 | 107 | #. Author URI of the plugin 108 | #: pmpro-woocommerce.php 109 | msgid "https://www.paidmembershipspro.com/" 110 | msgstr "https://www.paidmembershipspro.com/" 111 | 112 | #. URI of the plugin 113 | #. Plugin URI of the plugin 114 | #: pmpro-woocommerce.php 115 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 116 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 117 | 118 | #. Description of the plugin 119 | msgid "Integrate WooCommerce with Paid Memberships Pro." 120 | msgstr "Integrate WooCommerce with Paid Memberships Pro." 121 | 122 | #: pmpro-woocommerce.php:547 123 | #: pmpro-woocommerce.php:556 124 | #: pmpro-woocommerce.php:575 125 | #: pmpro-woocommerce.php:603 126 | #: pmpro-woocommerce.php:644 127 | #: pmpro-woocommerce.php:649 128 | msgid "Member Discount Pricing" 129 | msgstr "Member Discount Pricing" 130 | 131 | #: pmpro-woocommerce.php:494 132 | #: pmpro-woocommerce.php:503 133 | #: pmpro-woocommerce.php:522 134 | #: pmpro-woocommerce.php:546 135 | #: pmpro-woocommerce.php:587 136 | #: pmpro-woocommerce.php:592 137 | msgid "Membership" 138 | msgstr "Membership" 139 | 140 | #: pmpro-woocommerce.php:638 141 | #: pmpro-woocommerce.php:648 142 | #: pmpro-woocommerce.php:667 143 | #: pmpro-woocommerce.php:696 144 | #: pmpro-woocommerce.php:737 145 | #: pmpro-woocommerce.php:742 146 | msgid "Membership Discount (%):" 147 | msgstr "Membership Discount (%):" 148 | 149 | #: pmpro-woocommerce.php:523 150 | #: pmpro-woocommerce.php:532 151 | #: pmpro-woocommerce.php:551 152 | #: pmpro-woocommerce.php:576 153 | #: pmpro-woocommerce.php:617 154 | #: pmpro-woocommerce.php:622 155 | msgid "Membership Product" 156 | msgstr "Membership Product" 157 | 158 | #: pmpro-woocommerce.php:682 159 | #: pmpro-woocommerce.php:683 160 | #: pmpro-woocommerce.php:692 161 | #: pmpro-woocommerce.php:693 162 | #: includes/pmpro-gift-levels.php:362 163 | #: pmpro-woocommerce.php:711 164 | #: pmpro-woocommerce.php:712 165 | #: includes/pmpro-gift-levels.php:365 166 | #: pmpro-woocommerce.php:740 167 | #: pmpro-woocommerce.php:741 168 | #: pmpro-woocommerce.php:781 169 | #: pmpro-woocommerce.php:782 170 | #: pmpro-woocommerce.php:786 171 | #: pmpro-woocommerce.php:787 172 | msgid "No" 173 | msgstr "No" 174 | 175 | #. Author of the plugin 176 | #: pmpro-woocommerce.php 177 | msgid "Paid Memberships Pro" 178 | msgstr "Paid Memberships Pro" 179 | 180 | #. Name of the plugin 181 | #. Plugin Name of the plugin 182 | #: pmpro-woocommerce.php 183 | msgid "Paid Memberships Pro - WooCommerce Add On" 184 | msgstr "Paid Memberships Pro - WooCommerce Add On" 185 | 186 | #: includes/pmpro-gift-levels.php:108 187 | #: includes/pmpro-gift-levels.php:112 188 | #: includes/pmpro-gift-levels.php:113 189 | msgid "Please enter a EMAIL of Recipient" 190 | msgstr "Please enter a EMAIL of Recipient" 191 | 192 | #: includes/pmpro-gift-levels.php:104 193 | #: includes/pmpro-gift-levels.php:108 194 | #: includes/pmpro-gift-levels.php:109 195 | msgid "Please enter a NAME of Recipient" 196 | msgstr "Please enter a NAME of Recipient" 197 | 198 | #: includes/pmpro-gift-levels.php:42 199 | #: includes/pmpro-gift-levels.php:63 200 | #: includes/pmpro-gift-levels.php:148 201 | #: includes/pmpro-gift-levels.php:156 202 | #: includes/pmpro-gift-levels.php:43 203 | #: includes/pmpro-gift-levels.php:64 204 | #: includes/pmpro-gift-levels.php:158 205 | msgid "Recipient Email" 206 | msgstr "Recipient Email" 207 | 208 | #: includes/pmpro-gift-levels.php:38 209 | #: includes/pmpro-gift-levels.php:59 210 | #: includes/pmpro-gift-levels.php:145 211 | #: includes/pmpro-gift-levels.php:153 212 | #: includes/pmpro-gift-levels.php:39 213 | #: includes/pmpro-gift-levels.php:60 214 | #: includes/pmpro-gift-levels.php:154 215 | msgid "Recipient Name" 216 | msgstr "Recipient Name" 217 | 218 | #: includes/pmpro-gift-levels.php:332 219 | #: includes/pmpro-gift-levels.php:339 220 | #: includes/pmpro-gift-levels.php:348 221 | #: includes/pmpro-gift-levels.php:351 222 | msgid "Select Discount Code" 223 | msgstr "Select Discount Code" 224 | 225 | #: includes/pmpro-gift-levels.php:51 226 | #: includes/pmpro-gift-levels.php:52 227 | msgid "Send Email to Recipient?" 228 | msgstr "Send Email to Recipient?" 229 | 230 | #: pmpro-woocommerce.php:633 231 | #: pmpro-woocommerce.php:643 232 | #: pmpro-woocommerce.php:662 233 | #: pmpro-woocommerce.php:691 234 | #: pmpro-woocommerce.php:732 235 | #: pmpro-woocommerce.php:737 236 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 237 | msgstr "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 238 | 239 | #: pmpro-woocommerce.php:632 240 | #: pmpro-woocommerce.php:642 241 | #: pmpro-woocommerce.php:661 242 | #: pmpro-woocommerce.php:690 243 | #: pmpro-woocommerce.php:731 244 | #: pmpro-woocommerce.php:736 245 | msgid "Set Membership Discount" 246 | msgstr "Set Membership Discount" 247 | 248 | #: pmpro-woocommerce.php:548 249 | #: pmpro-woocommerce.php:557 250 | #: pmpro-woocommerce.php:576 251 | #: pmpro-woocommerce.php:604 252 | #: pmpro-woocommerce.php:645 253 | #: pmpro-woocommerce.php:650 254 | #, php-format 255 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 256 | msgstr "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 257 | 258 | #: includes/admin.php:14 259 | msgid "Support" 260 | msgstr "Support" 261 | 262 | #: includes/pmpro-gift-levels.php:335 263 | #: includes/pmpro-gift-levels.php:342 264 | #: includes/pmpro-gift-levels.php:351 265 | #: includes/pmpro-gift-levels.php:354 266 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 267 | msgstr "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 268 | 269 | #: includes/admin.php:13 270 | msgid "View Documentation" 271 | msgstr "View Documentation" 272 | 273 | #: includes/admin.php:14 274 | msgid "Visit Customer Support Forum" 275 | msgstr "Visit Customer Support Forum" 276 | 277 | #: pmpro-woocommerce.php:683 278 | #: pmpro-woocommerce.php:693 279 | #: includes/pmpro-gift-levels.php:361 280 | #: pmpro-woocommerce.php:712 281 | #: includes/pmpro-gift-levels.php:364 282 | #: pmpro-woocommerce.php:741 283 | #: pmpro-woocommerce.php:782 284 | #: pmpro-woocommerce.php:787 285 | msgid "Yes" 286 | msgstr "Yes" 287 | 288 | #: pmpro-woocommerce.php:106 289 | #: pmpro-woocommerce.php:111 290 | #: pmpro-woocommerce.php:152 291 | #: pmpro-woocommerce.php:157 292 | #, php-format 293 | msgid "You may only add one membership to your %scart%s." 294 | msgstr "You may only add one membership to your %scart%s." 295 | 296 | #: pmpro-woocommerce.php:691 297 | #: pmpro-woocommerce.php:710 298 | #: pmpro-woocommerce.php:739 299 | #: pmpro-woocommerce.php:780 300 | #: pmpro-woocommerce.php:785 301 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 302 | msgstr "" 303 | 304 | #: includes/pmpro-gift-levels.php:103 305 | #: includes/pmpro-gift-levels.php:104 306 | msgid "Please select option for Send Email to Recipient" 307 | msgstr "" 308 | 309 | #: includes/pmpro-gift-levels.php:270 310 | #: includes/pmpro-gift-levels.php:273 311 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 312 | msgstr "" 313 | 314 | #: includes/pmpro-gift-levels.php:276 315 | #: includes/pmpro-gift-levels.php:279 316 | msgid "Gift Email Sent To Recipient %s" 317 | msgstr "" 318 | 319 | #: includes/pmpro-gift-levels.php:294 320 | #: includes/pmpro-gift-levels.php:297 321 | msgid "Gift Email FAILED To %s. Contact Site Admin." 322 | msgstr "" 323 | 324 | #: includes/pmpro-gift-levels.php:300 325 | #: includes/pmpro-gift-levels.php:303 326 | msgid "Gift Email Sent To %s" 327 | msgstr "" 328 | 329 | #: includes/pmpro-gift-levels.php:331 330 | #: includes/pmpro-gift-levels.php:334 331 | msgid "No Discount Codes Created" 332 | msgstr "" 333 | 334 | #: includes/pmpro-gift-levels.php:333 335 | #: includes/pmpro-gift-levels.php:336 336 | msgid "None" 337 | msgstr "" 338 | 339 | #: includes/pmpro-gift-levels.php:363 340 | #: includes/pmpro-gift-levels.php:366 341 | msgid "Customer Decides" 342 | msgstr "" 343 | 344 | #: pmpro-woocommerce.php:583 345 | #: pmpro-woocommerce.php:611 346 | #: pmpro-woocommerce.php:652 347 | #: pmpro-woocommerce.php:657 348 | msgid "%s Price (%s)" 349 | msgstr "" 350 | 351 | #. Description of the plugin 352 | #: pmpro-woocommerce.php 353 | msgid "Integrate Paid Memberships Pro With WooCommerce." 354 | msgstr "" 355 | 356 | #: includes/pmpro-gift-levels.php:54 357 | msgid "Choose an option" 358 | msgstr "" 359 | 360 | #: pmpro-woocommerce.php:115 361 | #: pmpro-woocommerce.php:156 362 | #: pmpro-woocommerce.php:161 363 | msgid "%s is already in your %scart%s." 364 | msgstr "" 365 | 366 | #: includes/pmpro-gift-levels.php:55 367 | msgid "YES" 368 | msgstr "" 369 | 370 | #: includes/pmpro-gift-levels.php:56 371 | msgid "NO" 372 | msgstr "" 373 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-en_ZA.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-en_ZA.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-en_ZA.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:11+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Autocomplete via PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Yes" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "No" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Membership Discount (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Set Membership Discount" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Member Discount Pricing" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Check this to mark the order as completed immediately after checkout to activate the associated membership." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Autocomplete Order Status" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Membership Product" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Give Customers a Membership Level" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Membership" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Basket" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "You may only add one membership to your %scart%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Decide if a recipient email is entered and the code is emailed upon successful purchase." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Email Recipient" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Select Discount Code" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Gift a Membership" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "A Gift from %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Please enter a EMAIL of Recipient" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Please enter a NAME of Recipient" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "Send Email to Recipient?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Recipient Email" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Recipient Name" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Support" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Visit Customer Support Forum" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Docs" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "View Documentation" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-es.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-es.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-es.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:11+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "Por favor, selecciona la opción para enviar un correo electrónico al destinatario" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "¿Aplicar descuentos para miembros a los productos de suscripción y membresía de WooCommerce?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Establece el precio personalizado en base al nivel de membresía. Edita tus niveles de membresía para para establecer un porcentaje global de descuento para todos los productos." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Completar automáticamente vía PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Sí" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "No" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Descuento de membresía (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Establece un descuento de membresía para este nivel que se aplicará cuando un usuario con este nivel de membresía inicie una sesión. El descuento se aplica al precio normal del producto, al precio rebajado o al precio específico del nivel establecido en la página de edición del producto." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Establecer descuento de membresía" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Precios de descuento para miembros" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Marca esto para marcar el pedido como completado inmediatamente después del pago para activar la membresía asociada." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Completar automáticamente el estado de los pedidos" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Producto de membresía" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Da a los clientes un nivel de membresía" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Membresía" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Carrito" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Solo puedes añadir una membresía a tu %scarrito%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Decide si se introduce un correo electrónico del destinatario y si el código se envía por correo electrónico después de una compra realizada correctamente." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Destinatario del correo electrónico" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Con cada compra, se creará un nuevo código de un solo uso (que comienza con «GIFT») a partir del código seleccionado aquí." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Seleccionar el código de descuento" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Regala una membresía" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Un regalo de %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Por favor, introduce un CORREO ELECTRÓNICO del destinatario" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Por favor, introduce un NOMBRE del destinatario" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "¿Enviar un correo electrónico al destinatario?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Correo electrónico del destinatario" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Nombre del destinatario" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Soporte" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Visita el foro de soporte para clientes" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Documentación" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Ver la documentación" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-nl.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-nl.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-nl.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:11+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "%s staat al in je %swinkelwagen%s." 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "Kies een optie" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "Integreer Paid Memberships Pro met WooCommerce." 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "%s prijs (%s)" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "De klant beslist" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "Geen" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "Nee kortingscodes gemaakt" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "Cadeau e-mail verzonden naar %s" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "Cadeau e-mail mislukt op %s. Contact site beheer." 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "Cadeau e-mail verzonden naar ontvanger %s" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "Cadeau e-mail mislukt naar ontvanger %s. Contact site beheerder." 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "Selecteer de optie voor e-mail verzenden naar ontvanger" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "Ledenkortingen toepassen op WooCommerce abonnementen en lidmaatschapsproducten?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Stel de aangepaste prijs in op basis van lidmaatschapsniveau. Bewerk je lidmaatschapsniveaus om een globale procentuele korting in te stellen voor alle producten." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Autocomplete via PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Ja" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Nee" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Lidmaatschapskorting (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Stel een lidmaatschapskorting in voor dit niveau dat wordt toegepast wanneer een gebruiker met dit lidmaatschapsniveau is aangemeld. De korting wordt toegepast op de normale prijs, verkoopprijs of niveauspecifieke prijs van het product die is ingesteld op de productpagina voor bewerken." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Lidmaatschapskorting instellen" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Tarieven voor ledenkorting" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Vink dit aan om de bestelling onmiddellijk na het afrekenen als voltooid te markeren om het bijbehorende lidmaatschap te activeren." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Autocomplete bestelling status" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Lidmaatschap product" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Geef klanten een lidmaatschapsniveau" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Lidmaatschap" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Winkelwagen" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Je mag slechts één lidmaatschap toevoegen aan je %swinkelwagen%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Bepaal of een e-mail van de ontvanger is ingevoerd en de code per e-mail wordt verzonden bij een succesvolle aankoop." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "E-mail ontvanger" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Bij elke aankoop wordt een nieuwe eenmalige gebruikscode (die begint met \"GIFT\") gemaakt op basis van de hier geselecteerde code." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Selecteer kortingscode" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Een lidmaatschap cadeau doen" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Een geschenk van %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Voer een E-MAIL van de ontvanger in" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Voer een NAAM van de ontvanger in" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "E-mail naar ontvanger verzenden?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Ontvanger e-mail" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Naam ontvanger" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Ondersteuning" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Bezoek het klant ondersteuningsforum" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Documentatie" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Bekijk documentatie" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-nl_BE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-nl_BE.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-nl_BE.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:11+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "Kies een optie" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "Integreer Paid Memberships Pro met WooCommerce." 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "%s prijs (%s)" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "Klant beslist" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "Geen" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "Geen kortingscodes aangemaakt" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "Cadeau e-mail verzonden naar %s" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "Cadeau e-mail verzenden mislukt naar %s. Contacteer de websitebeheerder." 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "Cadeau e-mail verzonden naar ontvanger %s" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "Cadeau e-mail verzenden mislukt naar ontvanger %s. Contacteer de websitebeheerder." 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "Selecteer de optie voor e-mail verzenden naar ontvanger" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "Ledenkortingen toepassen op WooCommerce abonnementen en lidmaatschapsproducten?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Stel de aangepaste prijs in op basis van lidmaatschapsniveau. Bewerk je lidmaatschapsniveaus om een globale procentuele korting in te stellen voor alle producten." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Autocomplete via PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Ja" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Nee" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Lidmaatschapskorting (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Stel een lidmaatschapskorting in voor dit niveau dat wordt toegepast wanneer een gebruiker met dit lidmaatschapsniveau is aangemeld. De korting wordt toegepast op de normale prijs, verkoopprijs of niveauspecifieke prijs van het product die is ingesteld op de productpagina voor bewerken." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Lidmaatschapskorting instellen" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Tarieven voor ledenkorting" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Vink dit aan om de bestelling onmiddellijk na het afrekenen als voltooid te markeren om het bijbehorende lidmaatschap te activeren." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Autocomplete bestelling status" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Lidmaatschap product" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Geef klanten een lidmaatschapsniveau" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Lidmaatschap" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Winkelwagen" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Je mag slechts één lidmaatschap toevoegen aan je %swinkelwagen%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Bepaal of een e-mail van de ontvanger is ingevoerd en de code per e-mail wordt verzonden bij een succesvolle aankoop." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "E-mail ontvanger" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Bij elke aankoop wordt een nieuwe eenmalige gebruikscode (die begint met \"GIFT\") gemaakt op basis van de hier geselecteerde code." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Selecteer kortingscode" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Een lidmaatschap cadeau doen" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Een geschenk van %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Voer een E-MAIL van de ontvanger in" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Voer een NAAM van de ontvanger in" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "E-mail naar ontvanger verzenden?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Ontvanger e-mail" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Naam ontvanger" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Ondersteuning" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Bezoek het klant ondersteuningsforum" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Documentatie" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Documentatie bekijken" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-pt_BR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-pt_BR.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-pt_BR.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:11+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "%s já está no %scart%s." 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "Escolha uma opção" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "Integre o Paid Memberships Pro ao WooCommerce." 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "%s Preço (%s)" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "Cliente Decide" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "Nenhum" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "Nenhum código de desconto foi criado" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "E-mail Presente enviado a %s" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "E-mail Presente FALHOU para %s. Contacte o Administrador do Site." 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "E-mail Presente enviado ao destinatário %s" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "E-mail Presente FALHOUS ao destinatário %s. Contacte o Administrador do Site." 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "Selecione a opção para enviar e-mail para o destinatário" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "Aplicar Descontos de Associados a Assinaturas do WooCommerce e Produtos de Associação?" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Define o preço personalizado baseado no Nível de Associação. Edite seus níveis de associação para definir uma porcentagem de desconto global para todos os produtos." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - Complemento do WooCommerce" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Completar automaticamente com o PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Sim" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Não" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Desconto da associação (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Defina um desconto da associação para este nível, que deve ser aplicado quando um usuário com este nível de associação está conectado O desconto é aplicado ao preço regular do produto, preço em promoção ou preço específico para o nível definido na página de edição do produto." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Definir o desconto da associação" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Preço com desconto para associado" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Selecione esta opção para marcar o pedido como concluído imediatamente após o pagamento para ativar a associação." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Status de auto-completar o pedido" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Produto de Associação" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Atribua um nível de associação aos clientes" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Associação" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Carrinho" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Você só pode adicionar uma associação ao seu %scart%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Decida se um e-mail destinatário é digitado e o código enviado após uma compra bem sucedida." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Destinatário do e-mail" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "Em cada compra um código de uso único (que começa com \"GIFT\") será criado a partir do código selecionado aqui." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Selecionar Código de Desconto" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Presentear uma Associação" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Presente de %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Digite o E-MAIL do destinatário" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Digite o NOME do destinatário" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "Enviar e-mail ao destinatário?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "E-mail do destinatário" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Nome do Destinatário" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Suporte" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Visite o fórum de suporte ao cliente" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Documentação" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Ver a Documentação" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-ru.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-ru.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-ru.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:12+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "Выберите вариант" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "%s Цена (%s)" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "Отсутствует" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Установите индивидуальную цену в зависимости от уровня подписки. Измените уровни подписки, чтобы установить глобальную процентную скидку для всех продуктов." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Автозаполнение через PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Да" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Нет" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Скидка на подписку (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Установите скидку на подписку для этого уровня, которая будет применяться, когда пользователь с этим уровнем подписки войдет в систему. Скидка применяется к обычной цене продукта, цене распродажи или цене определенного уровня, установленной на странице редактирования продукта." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Установить скидку на подписку" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Размер скидки для участников" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Отметьте это, чтобы отметить заказ завершенным сразу после оформления заказа, чтобы активировать ассоциированное членство." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Автозаполнение статуса заказа" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Продукты подписки" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Предоставить клиентам уровень подписки" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Членство" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Корзина" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Вы можете добавить только одну подписку в вашу %sкорзину%s." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "Решите, если введен адрес электронной почты получателя, и код отправляется по электронной почте при успешной покупке." 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Получатель электронной почты" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "После каждой покупки новый одноразовый кода (который начинается с \"GIFT\") будет создан из кода, выбранного тут." 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Выбрать промокод" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Подарить подписку" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Подарок от %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Пожалуйста, введите EMAIL получателя" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Пожалуйста, введите ИМЯ получателя" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "Отправить email получателю?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Email получателя" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Имя получателя" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Поддержка" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Посетить Форум поддержки клиентов" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Документы" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Просмотреть документацию " 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-sk.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-sk.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-sk.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:12+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "Nastavte špecifickú cenu na základe členskej úrovne. Pre nastavenie globálnej zľavy na všetky produkty upravte členské úrovne ." 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "Automaticky dokončiť cez PMPro WooCommerce." 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Áno" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Nie" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Členská zľava (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "Nastavte členskú zľavu pre túto úroveň, ktorá bude aplikovaná keď užívateľ s touto úrovňou členstva bude prihlásený. Zľava bude uplatnená na normálnu cenu produktu, cenu po zľave, alebo na špecifickú cenu na základe členskej úrovne nastavenú na stránke editácie produktu." 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Nastavte členskú zľavu" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "Zľavnená cena pre členov" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "Po zakliknutí tejto možnosti objednávka bude po nákupe automaticky označená ako vybavená pre aktiváciu priradeného členstva." 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "Automaticky dokončiť stav objednávky" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Produkt členstva" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Pridať zákazníkom členskú úroveň" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Členstvo" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Košík" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "Do %skošíka%s môžete pridať len jedno členstvo." 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "" 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "Príjemca emailu" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "" 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Vybrať zľavový kód" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Daruj členstvo" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "Dar od %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Prosím zadajte EMAIL príjemcu" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Prosím zadajte MENO príjemcu" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "Odoslať email príjemcovi?" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Email príjemcu" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Meno príjemcu" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Podpora" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Navštívte fórum podpory zákazníkov" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Dokumentácia" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Zobraziť dokumentáciu" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-sv.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce-sv.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce-sv.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:12+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #: pmpro-woocommerce.php:161 18 | msgid "%s is already in your %scart%s." 19 | msgstr "" 20 | 21 | #: includes/pmpro-gift-levels.php:54 22 | msgid "Choose an option" 23 | msgstr "Välj ett alternativ" 24 | 25 | #. Description of the plugin 26 | #: pmpro-woocommerce.php 27 | msgid "Integrate Paid Memberships Pro With WooCommerce." 28 | msgstr "" 29 | 30 | #: pmpro-woocommerce.php:657 31 | msgid "%s Price (%s)" 32 | msgstr "" 33 | 34 | #: includes/pmpro-gift-levels.php:366 35 | msgid "Customer Decides" 36 | msgstr "" 37 | 38 | #: includes/pmpro-gift-levels.php:336 39 | msgid "None" 40 | msgstr "Ingen" 41 | 42 | #: includes/pmpro-gift-levels.php:334 43 | msgid "No Discount Codes Created" 44 | msgstr "" 45 | 46 | #: includes/pmpro-gift-levels.php:303 47 | msgid "Gift Email Sent To %s" 48 | msgstr "" 49 | 50 | #: includes/pmpro-gift-levels.php:297 51 | msgid "Gift Email FAILED To %s. Contact Site Admin." 52 | msgstr "" 53 | 54 | #: includes/pmpro-gift-levels.php:279 55 | msgid "Gift Email Sent To Recipient %s" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:273 59 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 60 | msgstr "" 61 | 62 | #: includes/pmpro-gift-levels.php:104 63 | msgid "Please select option for Send Email to Recipient" 64 | msgstr "" 65 | 66 | #: pmpro-woocommerce.php:785 67 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 68 | msgstr "" 69 | 70 | #: pmpro-woocommerce.php:650 71 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 72 | msgstr "" 73 | 74 | #. Author URI of the plugin 75 | #: pmpro-woocommerce.php 76 | msgid "https://www.paidmembershipspro.com/" 77 | msgstr "https://www.paidmembershipspro.com/" 78 | 79 | #. Author of the plugin 80 | #: pmpro-woocommerce.php 81 | msgid "Paid Memberships Pro" 82 | msgstr "Paid Memberships Pro" 83 | 84 | #. Plugin URI of the plugin 85 | #: pmpro-woocommerce.php 86 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 87 | msgstr "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 88 | 89 | #. Plugin Name of the plugin 90 | #: pmpro-woocommerce.php 91 | msgid "Paid Memberships Pro - WooCommerce Add On" 92 | msgstr "Paid Memberships Pro - WooCommerce Add On" 93 | 94 | #: pmpro-woocommerce.php:976 95 | msgid "Autocomplete via PMPro WooCommerce." 96 | msgstr "" 97 | 98 | #: includes/pmpro-gift-levels.php:364 99 | #: pmpro-woocommerce.php:787 100 | msgid "Yes" 101 | msgstr "Ja" 102 | 103 | #: includes/pmpro-gift-levels.php:365 104 | #: pmpro-woocommerce.php:786 105 | #: pmpro-woocommerce.php:787 106 | msgid "No" 107 | msgstr "Nej" 108 | 109 | #: pmpro-woocommerce.php:742 110 | msgid "Membership Discount (%):" 111 | msgstr "Medlemskapsrabatt (%):" 112 | 113 | #: pmpro-woocommerce.php:737 114 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 115 | msgstr "" 116 | 117 | #: pmpro-woocommerce.php:736 118 | msgid "Set Membership Discount" 119 | msgstr "Ställ in medlemskapsrabatt" 120 | 121 | #: pmpro-woocommerce.php:649 122 | msgid "Member Discount Pricing" 123 | msgstr "" 124 | 125 | #: pmpro-woocommerce.php:641 126 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 127 | msgstr "" 128 | 129 | #: pmpro-woocommerce.php:640 130 | msgid "Autocomplete Order Status" 131 | msgstr "" 132 | 133 | #: pmpro-woocommerce.php:622 134 | msgid "Membership Product" 135 | msgstr "Medlemskapsprodukt" 136 | 137 | #: pmpro-woocommerce.php:615 138 | msgid "Give Customers a Membership Level" 139 | msgstr "Ge kunder en medlemskapsnivå" 140 | 141 | #: pmpro-woocommerce.php:592 142 | msgid "Membership" 143 | msgstr "Medlemskap" 144 | 145 | #: pmpro-woocommerce.php:158 146 | #: pmpro-woocommerce.php:163 147 | msgid "Cart" 148 | msgstr "Varukorg" 149 | 150 | #: pmpro-woocommerce.php:157 151 | msgid "You may only add one membership to your %scart%s." 152 | msgstr "" 153 | 154 | #: includes/pmpro-gift-levels.php:369 155 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 156 | msgstr "" 157 | 158 | #: includes/pmpro-gift-levels.php:362 159 | msgid "Email Recipient" 160 | msgstr "E-postmottagare" 161 | 162 | #: includes/pmpro-gift-levels.php:354 163 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 164 | msgstr "" 165 | 166 | #: includes/pmpro-gift-levels.php:351 167 | msgid "Select Discount Code" 168 | msgstr "Välj rabattkod" 169 | 170 | #: includes/pmpro-gift-levels.php:345 171 | msgid "Gift a Membership" 172 | msgstr "Ge bort ett medlemskap" 173 | 174 | #: includes/pmpro-gift-levels.php:267 175 | #: includes/pmpro-gift-levels.php:291 176 | msgid "A Gift from %s" 177 | msgstr "En gåva från %s" 178 | 179 | #: includes/pmpro-gift-levels.php:113 180 | msgid "Please enter a EMAIL of Recipient" 181 | msgstr "Ange en E-POST för mottagare" 182 | 183 | #: includes/pmpro-gift-levels.php:109 184 | msgid "Please enter a NAME of Recipient" 185 | msgstr "Ange ett NAMN för mottagare" 186 | 187 | #: includes/pmpro-gift-levels.php:52 188 | msgid "Send Email to Recipient?" 189 | msgstr "" 190 | 191 | #: includes/pmpro-gift-levels.php:43 192 | #: includes/pmpro-gift-levels.php:64 193 | #: includes/pmpro-gift-levels.php:158 194 | msgid "Recipient Email" 195 | msgstr "Mottagarens e-post" 196 | 197 | #: includes/pmpro-gift-levels.php:39 198 | #: includes/pmpro-gift-levels.php:60 199 | #: includes/pmpro-gift-levels.php:154 200 | msgid "Recipient Name" 201 | msgstr "Mottagarens namn" 202 | 203 | #: includes/admin.php:14 204 | msgid "Support" 205 | msgstr "Support" 206 | 207 | #: includes/admin.php:14 208 | msgid "Visit Customer Support Forum" 209 | msgstr "Besök kundsupportforum" 210 | 211 | #: includes/admin.php:13 212 | msgid "Docs" 213 | msgstr "Dokumentation" 214 | 215 | #: includes/admin.php:13 216 | msgid "View Documentation" 217 | msgstr "Visa dokumentation" 218 | 219 | #: includes/pmpro-gift-levels.php:55 220 | msgid "YES" 221 | msgstr "" 222 | 223 | #: includes/pmpro-gift-levels.php:56 224 | msgid "NO" 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strangerstudios/pmpro-woocommerce/5923bcc5a0342b6f4a7f221b6243194df233e9fb/languages/pmpro-woocommerce.mo -------------------------------------------------------------------------------- /languages/pmpro-woocommerce.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:10+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #. Plugin Name of the plugin 18 | #: pmpro-woocommerce.php 19 | msgid "Paid Memberships Pro - WooCommerce Add On" 20 | msgstr "" 21 | 22 | #. Plugin URI of the plugin 23 | #: pmpro-woocommerce.php 24 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 25 | msgstr "" 26 | 27 | #. Description of the plugin 28 | msgid "Integrate WooCommerce with Paid Memberships Pro." 29 | msgstr "" 30 | 31 | #. Author of the plugin 32 | #: pmpro-woocommerce.php 33 | msgid "Paid Memberships Pro" 34 | msgstr "" 35 | 36 | #. Author URI of the plugin 37 | #: pmpro-woocommerce.php 38 | msgid "https://www.paidmembershipspro.com/" 39 | msgstr "" 40 | 41 | #: includes/admin.php:13 42 | msgid "View Documentation" 43 | msgstr "" 44 | 45 | #: includes/admin.php:13 46 | msgid "Docs" 47 | msgstr "" 48 | 49 | #: includes/admin.php:14 50 | msgid "Visit Customer Support Forum" 51 | msgstr "" 52 | 53 | #: includes/admin.php:14 54 | msgid "Support" 55 | msgstr "" 56 | 57 | #: includes/pmpro-gift-levels.php:38 58 | #: includes/pmpro-gift-levels.php:59 59 | #: includes/pmpro-gift-levels.php:145 60 | #: includes/pmpro-gift-levels.php:153 61 | #: includes/pmpro-gift-levels.php:39 62 | #: includes/pmpro-gift-levels.php:60 63 | #: includes/pmpro-gift-levels.php:154 64 | msgid "Recipient Name" 65 | msgstr "" 66 | 67 | #: includes/pmpro-gift-levels.php:42 68 | #: includes/pmpro-gift-levels.php:63 69 | #: includes/pmpro-gift-levels.php:148 70 | #: includes/pmpro-gift-levels.php:156 71 | #: includes/pmpro-gift-levels.php:43 72 | #: includes/pmpro-gift-levels.php:64 73 | #: includes/pmpro-gift-levels.php:158 74 | msgid "Recipient Email" 75 | msgstr "" 76 | 77 | #: includes/pmpro-gift-levels.php:51 78 | #: includes/pmpro-gift-levels.php:52 79 | msgid "Send Email to Recipient?" 80 | msgstr "" 81 | 82 | #: includes/pmpro-gift-levels.php:104 83 | #: includes/pmpro-gift-levels.php:108 84 | #: includes/pmpro-gift-levels.php:109 85 | msgid "Please enter a NAME of Recipient" 86 | msgstr "" 87 | 88 | #: includes/pmpro-gift-levels.php:108 89 | #: includes/pmpro-gift-levels.php:112 90 | #: includes/pmpro-gift-levels.php:113 91 | msgid "Please enter a EMAIL of Recipient" 92 | msgstr "" 93 | 94 | #: includes/pmpro-gift-levels.php:255 95 | #: includes/pmpro-gift-levels.php:279 96 | #: includes/pmpro-gift-levels.php:264 97 | #: includes/pmpro-gift-levels.php:288 98 | #: includes/pmpro-gift-levels.php:267 99 | #: includes/pmpro-gift-levels.php:291 100 | msgid "A Gift from %s" 101 | msgstr "" 102 | 103 | #: includes/pmpro-gift-levels.php:333 104 | #: includes/pmpro-gift-levels.php:342 105 | #: includes/pmpro-gift-levels.php:345 106 | msgid "Gift a Membership" 107 | msgstr "" 108 | 109 | #: includes/pmpro-gift-levels.php:339 110 | #: includes/pmpro-gift-levels.php:348 111 | #: includes/pmpro-gift-levels.php:351 112 | msgid "Select Discount Code" 113 | msgstr "" 114 | 115 | #: includes/pmpro-gift-levels.php:342 116 | #: includes/pmpro-gift-levels.php:351 117 | #: includes/pmpro-gift-levels.php:354 118 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 119 | msgstr "" 120 | 121 | #: includes/pmpro-gift-levels.php:350 122 | #: includes/pmpro-gift-levels.php:359 123 | #: includes/pmpro-gift-levels.php:362 124 | msgid "Email Recipient" 125 | msgstr "" 126 | 127 | #: includes/pmpro-gift-levels.php:357 128 | #: includes/pmpro-gift-levels.php:366 129 | #: includes/pmpro-gift-levels.php:369 130 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 131 | msgstr "" 132 | 133 | #: pmpro-woocommerce.php:106 134 | #: pmpro-woocommerce.php:111 135 | #: pmpro-woocommerce.php:152 136 | #: pmpro-woocommerce.php:157 137 | msgid "You may only add one membership to your %scart%s." 138 | msgstr "" 139 | 140 | #: pmpro-woocommerce.php:107 141 | #: pmpro-woocommerce.php:112 142 | #: pmpro-woocommerce.php:117 143 | #: pmpro-woocommerce.php:153 144 | #: pmpro-woocommerce.php:158 145 | #: pmpro-woocommerce.php:163 146 | msgid "Cart" 147 | msgstr "" 148 | 149 | #: pmpro-woocommerce.php:503 150 | #: pmpro-woocommerce.php:522 151 | #: pmpro-woocommerce.php:546 152 | #: pmpro-woocommerce.php:587 153 | #: pmpro-woocommerce.php:592 154 | msgid "Membership" 155 | msgstr "" 156 | 157 | #: pmpro-woocommerce.php:526 158 | #: pmpro-woocommerce.php:545 159 | #: pmpro-woocommerce.php:569 160 | #: pmpro-woocommerce.php:610 161 | #: pmpro-woocommerce.php:615 162 | msgid "Give Customers a Membership Level" 163 | msgstr "" 164 | 165 | #: pmpro-woocommerce.php:532 166 | #: pmpro-woocommerce.php:551 167 | #: pmpro-woocommerce.php:576 168 | #: pmpro-woocommerce.php:617 169 | #: pmpro-woocommerce.php:622 170 | msgid "Membership Product" 171 | msgstr "" 172 | 173 | #: pmpro-woocommerce.php:548 174 | #: pmpro-woocommerce.php:567 175 | #: pmpro-woocommerce.php:594 176 | #: pmpro-woocommerce.php:635 177 | #: pmpro-woocommerce.php:640 178 | msgid "Autocomplete Order Status" 179 | msgstr "" 180 | 181 | #: pmpro-woocommerce.php:549 182 | #: pmpro-woocommerce.php:568 183 | #: pmpro-woocommerce.php:595 184 | #: pmpro-woocommerce.php:636 185 | #: pmpro-woocommerce.php:641 186 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 187 | msgstr "" 188 | 189 | #: pmpro-woocommerce.php:556 190 | #: pmpro-woocommerce.php:575 191 | #: pmpro-woocommerce.php:603 192 | #: pmpro-woocommerce.php:644 193 | #: pmpro-woocommerce.php:649 194 | msgid "Member Discount Pricing" 195 | msgstr "" 196 | 197 | #: pmpro-woocommerce.php:557 198 | #: pmpro-woocommerce.php:576 199 | #: pmpro-woocommerce.php:604 200 | #: pmpro-woocommerce.php:645 201 | #: pmpro-woocommerce.php:650 202 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 203 | msgstr "" 204 | 205 | #: pmpro-woocommerce.php:642 206 | #: pmpro-woocommerce.php:661 207 | #: pmpro-woocommerce.php:690 208 | #: pmpro-woocommerce.php:731 209 | #: pmpro-woocommerce.php:736 210 | msgid "Set Membership Discount" 211 | msgstr "" 212 | 213 | #: pmpro-woocommerce.php:643 214 | #: pmpro-woocommerce.php:662 215 | #: pmpro-woocommerce.php:691 216 | #: pmpro-woocommerce.php:732 217 | #: pmpro-woocommerce.php:737 218 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 219 | msgstr "" 220 | 221 | #: pmpro-woocommerce.php:648 222 | #: pmpro-woocommerce.php:667 223 | #: pmpro-woocommerce.php:696 224 | #: pmpro-woocommerce.php:737 225 | #: pmpro-woocommerce.php:742 226 | msgid "Membership Discount (%):" 227 | msgstr "" 228 | 229 | #: pmpro-woocommerce.php:691 230 | #: pmpro-woocommerce.php:710 231 | #: pmpro-woocommerce.php:739 232 | #: pmpro-woocommerce.php:780 233 | #: pmpro-woocommerce.php:785 234 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 235 | msgstr "" 236 | 237 | #: pmpro-woocommerce.php:692 238 | #: pmpro-woocommerce.php:693 239 | #: includes/pmpro-gift-levels.php:362 240 | #: pmpro-woocommerce.php:711 241 | #: pmpro-woocommerce.php:712 242 | #: includes/pmpro-gift-levels.php:365 243 | #: pmpro-woocommerce.php:740 244 | #: pmpro-woocommerce.php:741 245 | #: pmpro-woocommerce.php:781 246 | #: pmpro-woocommerce.php:782 247 | #: pmpro-woocommerce.php:786 248 | #: pmpro-woocommerce.php:787 249 | msgid "No" 250 | msgstr "" 251 | 252 | #: pmpro-woocommerce.php:693 253 | #: includes/pmpro-gift-levels.php:361 254 | #: pmpro-woocommerce.php:712 255 | #: includes/pmpro-gift-levels.php:364 256 | #: pmpro-woocommerce.php:741 257 | #: pmpro-woocommerce.php:782 258 | #: pmpro-woocommerce.php:787 259 | msgid "Yes" 260 | msgstr "" 261 | 262 | #: pmpro-woocommerce.php:892 263 | #: pmpro-woocommerce.php:871 264 | #: pmpro-woocommerce.php:901 265 | #: pmpro-woocommerce.php:930 266 | #: pmpro-woocommerce.php:971 267 | #: pmpro-woocommerce.php:976 268 | msgid "Autocomplete via PMPro WooCommerce." 269 | msgstr "" 270 | 271 | #: includes/pmpro-gift-levels.php:103 272 | #: includes/pmpro-gift-levels.php:104 273 | msgid "Please select option for Send Email to Recipient" 274 | msgstr "" 275 | 276 | #: includes/pmpro-gift-levels.php:270 277 | #: includes/pmpro-gift-levels.php:273 278 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 279 | msgstr "" 280 | 281 | #: includes/pmpro-gift-levels.php:276 282 | #: includes/pmpro-gift-levels.php:279 283 | msgid "Gift Email Sent To Recipient %s" 284 | msgstr "" 285 | 286 | #: includes/pmpro-gift-levels.php:294 287 | #: includes/pmpro-gift-levels.php:297 288 | msgid "Gift Email FAILED To %s. Contact Site Admin." 289 | msgstr "" 290 | 291 | #: includes/pmpro-gift-levels.php:300 292 | #: includes/pmpro-gift-levels.php:303 293 | msgid "Gift Email Sent To %s" 294 | msgstr "" 295 | 296 | #: includes/pmpro-gift-levels.php:331 297 | #: includes/pmpro-gift-levels.php:334 298 | msgid "No Discount Codes Created" 299 | msgstr "" 300 | 301 | #: includes/pmpro-gift-levels.php:333 302 | #: includes/pmpro-gift-levels.php:336 303 | msgid "None" 304 | msgstr "" 305 | 306 | #: includes/pmpro-gift-levels.php:363 307 | #: includes/pmpro-gift-levels.php:366 308 | msgid "Customer Decides" 309 | msgstr "" 310 | 311 | #: pmpro-woocommerce.php:583 312 | #: pmpro-woocommerce.php:611 313 | #: pmpro-woocommerce.php:652 314 | #: pmpro-woocommerce.php:657 315 | msgid "%s Price (%s)" 316 | msgstr "" 317 | 318 | #. Description of the plugin 319 | #: pmpro-woocommerce.php 320 | msgid "Integrate Paid Memberships Pro With WooCommerce." 321 | msgstr "" 322 | 323 | #: includes/pmpro-gift-levels.php:54 324 | msgid "Choose an option" 325 | msgstr "" 326 | 327 | #: pmpro-woocommerce.php:115 328 | #: pmpro-woocommerce.php:156 329 | #: pmpro-woocommerce.php:161 330 | msgid "%s is already in your %scart%s." 331 | msgstr "" 332 | 333 | #: includes/pmpro-gift-levels.php:55 334 | msgid "YES" 335 | msgstr "" 336 | 337 | #: includes/pmpro-gift-levels.php:56 338 | msgid "NO" 339 | msgstr "" 340 | -------------------------------------------------------------------------------- /languages/pmpro-woocommerce.pot: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 Paid Memberships Pro 2 | # This file is distributed under the same license as the Paid Memberships Pro - WooCommerce Add On plugin. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: Paid Memberships Pro - WooCommerce Add On 1.10\n" 6 | "Report-Msgid-Bugs-To: info@paidmembershipspro.com\n" 7 | "Last-Translator: Paid Memberships Pro \n" 8 | "Language-Team: Paid Memberships Pro \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "POT-Creation-Date: 2024-10-21T18:26:10+00:00\n" 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 | "X-Generator: WP-CLI 2.11.0\n" 15 | "X-Domain: pmpro-woocommerce\n" 16 | 17 | #. Plugin Name of the plugin 18 | #: pmpro-woocommerce.php 19 | msgid "Paid Memberships Pro - WooCommerce Add On" 20 | msgstr "" 21 | 22 | #. Plugin URI of the plugin 23 | #: pmpro-woocommerce.php 24 | msgid "https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/" 25 | msgstr "" 26 | 27 | #. Description of the plugin 28 | #: pmpro-woocommerce.php 29 | msgid "Integrate Paid Memberships Pro With WooCommerce." 30 | msgstr "" 31 | 32 | #. Author of the plugin 33 | #: pmpro-woocommerce.php 34 | msgid "Paid Memberships Pro" 35 | msgstr "" 36 | 37 | #. Author URI of the plugin 38 | #: pmpro-woocommerce.php 39 | msgid "https://www.paidmembershipspro.com/" 40 | msgstr "" 41 | 42 | #: includes/admin.php:13 43 | msgid "View Documentation" 44 | msgstr "" 45 | 46 | #: includes/admin.php:13 47 | msgid "Docs" 48 | msgstr "" 49 | 50 | #: includes/admin.php:14 51 | msgid "Visit Customer Support Forum" 52 | msgstr "" 53 | 54 | #: includes/admin.php:14 55 | msgid "Support" 56 | msgstr "" 57 | 58 | #: includes/pmpro-gift-levels.php:39 59 | #: includes/pmpro-gift-levels.php:60 60 | #: includes/pmpro-gift-levels.php:154 61 | msgid "Recipient Name" 62 | msgstr "" 63 | 64 | #: includes/pmpro-gift-levels.php:43 65 | #: includes/pmpro-gift-levels.php:64 66 | #: includes/pmpro-gift-levels.php:158 67 | msgid "Recipient Email" 68 | msgstr "" 69 | 70 | #: includes/pmpro-gift-levels.php:52 71 | msgid "Send Email to Recipient?" 72 | msgstr "" 73 | 74 | #: includes/pmpro-gift-levels.php:54 75 | msgid "Choose an option" 76 | msgstr "" 77 | 78 | #: includes/pmpro-gift-levels.php:55 79 | msgid "YES" 80 | msgstr "" 81 | 82 | #: includes/pmpro-gift-levels.php:56 83 | msgid "NO" 84 | msgstr "" 85 | 86 | #: includes/pmpro-gift-levels.php:104 87 | msgid "Please select option for Send Email to Recipient" 88 | msgstr "" 89 | 90 | #: includes/pmpro-gift-levels.php:109 91 | msgid "Please enter a NAME of Recipient" 92 | msgstr "" 93 | 94 | #: includes/pmpro-gift-levels.php:113 95 | msgid "Please enter a EMAIL of Recipient" 96 | msgstr "" 97 | 98 | #: includes/pmpro-gift-levels.php:267 99 | #: includes/pmpro-gift-levels.php:291 100 | msgid "A Gift from %s" 101 | msgstr "" 102 | 103 | #: includes/pmpro-gift-levels.php:273 104 | msgid "Gift Email FAILED To Recipient %s. Contact Site Admin." 105 | msgstr "" 106 | 107 | #: includes/pmpro-gift-levels.php:279 108 | msgid "Gift Email Sent To Recipient %s" 109 | msgstr "" 110 | 111 | #: includes/pmpro-gift-levels.php:297 112 | msgid "Gift Email FAILED To %s. Contact Site Admin." 113 | msgstr "" 114 | 115 | #: includes/pmpro-gift-levels.php:303 116 | msgid "Gift Email Sent To %s" 117 | msgstr "" 118 | 119 | #: includes/pmpro-gift-levels.php:334 120 | msgid "No Discount Codes Created" 121 | msgstr "" 122 | 123 | #: includes/pmpro-gift-levels.php:336 124 | msgid "None" 125 | msgstr "" 126 | 127 | #: includes/pmpro-gift-levels.php:345 128 | msgid "Gift a Membership" 129 | msgstr "" 130 | 131 | #: includes/pmpro-gift-levels.php:351 132 | msgid "Select Discount Code" 133 | msgstr "" 134 | 135 | #: includes/pmpro-gift-levels.php:354 136 | msgid "Upon each purchase a new one-time use code (which start with \"GIFT\") will be created from the code selected here." 137 | msgstr "" 138 | 139 | #: includes/pmpro-gift-levels.php:362 140 | msgid "Email Recipient" 141 | msgstr "" 142 | 143 | #: includes/pmpro-gift-levels.php:364 144 | #: pmpro-woocommerce.php:787 145 | msgid "Yes" 146 | msgstr "" 147 | 148 | #: includes/pmpro-gift-levels.php:365 149 | #: pmpro-woocommerce.php:786 150 | #: pmpro-woocommerce.php:787 151 | msgid "No" 152 | msgstr "" 153 | 154 | #: includes/pmpro-gift-levels.php:366 155 | msgid "Customer Decides" 156 | msgstr "" 157 | 158 | #: includes/pmpro-gift-levels.php:369 159 | msgid "Decide if a recipient email is entered and the code is emailed upon successful purchase." 160 | msgstr "" 161 | 162 | #: pmpro-woocommerce.php:157 163 | msgid "You may only add one membership to your %scart%s." 164 | msgstr "" 165 | 166 | #: pmpro-woocommerce.php:158 167 | #: pmpro-woocommerce.php:163 168 | msgid "Cart" 169 | msgstr "" 170 | 171 | #: pmpro-woocommerce.php:161 172 | msgid "%s is already in your %scart%s." 173 | msgstr "" 174 | 175 | #: pmpro-woocommerce.php:592 176 | msgid "Membership" 177 | msgstr "" 178 | 179 | #: pmpro-woocommerce.php:615 180 | msgid "Give Customers a Membership Level" 181 | msgstr "" 182 | 183 | #: pmpro-woocommerce.php:622 184 | msgid "Membership Product" 185 | msgstr "" 186 | 187 | #: pmpro-woocommerce.php:640 188 | msgid "Autocomplete Order Status" 189 | msgstr "" 190 | 191 | #: pmpro-woocommerce.php:641 192 | msgid "Check this to mark the order as completed immediately after checkout to activate the associated membership." 193 | msgstr "" 194 | 195 | #: pmpro-woocommerce.php:649 196 | msgid "Member Discount Pricing" 197 | msgstr "" 198 | 199 | #: pmpro-woocommerce.php:650 200 | msgid "Set the custom price based on Membership Level. Edit your membership levels to set a global percent discount for all products." 201 | msgstr "" 202 | 203 | #: pmpro-woocommerce.php:657 204 | msgid "%s Price (%s)" 205 | msgstr "" 206 | 207 | #: pmpro-woocommerce.php:736 208 | msgid "Set Membership Discount" 209 | msgstr "" 210 | 211 | #: pmpro-woocommerce.php:737 212 | msgid "Set a membership discount for this level which will be applied when a user with this membership level is logged in. The discount is applied to the product's regular price, sale price, or level-specific price set on the edit product page." 213 | msgstr "" 214 | 215 | #: pmpro-woocommerce.php:742 216 | msgid "Membership Discount (%):" 217 | msgstr "" 218 | 219 | #: pmpro-woocommerce.php:785 220 | msgid "Apply Member Discounts to WooCommerce Subscription and Membership Products?" 221 | msgstr "" 222 | 223 | #: pmpro-woocommerce.php:976 224 | msgid "Autocomplete via PMPro WooCommerce." 225 | msgstr "" 226 | -------------------------------------------------------------------------------- /pmpro-woocommerce.php: -------------------------------------------------------------------------------- 1 | get_id(); 86 | if ( ! array_key_exists( $product_id, $pmprowoo_product_levels ) ) { 87 | return $is_purchasable; 88 | } 89 | 90 | // Backwards compatibility for pre 3.0 versions of PMPro. 91 | if ( ! function_exists( 'pmpro_get_group_id_for_level' ) ) { 92 | // If the cart already has a membership product, let's disable the purchase. 93 | if ( pmprowoo_cart_has_membership() ) { 94 | add_action( 'woocommerce_single_product_summary', 'pmprowoo_purchase_disabled' ); 95 | return false; 96 | } 97 | return $is_purchasable; 98 | } 99 | 100 | // Get the level group ID for the product. 101 | $group_id = pmpro_get_group_id_for_level( $pmprowoo_product_levels[ $product_id ] ); 102 | if ( empty( $group_id ) ) { 103 | return $is_purchasable; 104 | } 105 | 106 | // If the level group allows purchasing multiple levels in the group, we can allow purchasing this product. 107 | $group = pmpro_get_level_group( $group_id ); 108 | if ( empty( $group ) || (bool) $group->allow_multiple_selections ) { 109 | return $is_purchasable; 110 | } 111 | 112 | // This group only allows users to have one level from the group. 113 | // Check if the cart already has a membership product for this group. 114 | $products_in_cart = pmprowoo_get_memberships_from_cart(); 115 | foreach ( $products_in_cart as $product_id ) { 116 | // If this is not a product level, continue. 117 | if ( ! array_key_exists( $product_id, $pmprowoo_product_levels ) ) { 118 | continue; 119 | } 120 | 121 | // If the cart product is the same as the product passed into this function, continue. 122 | if ( $product_id === $product->get_id() ) { 123 | continue; 124 | } 125 | 126 | // Get the group ID for the product in the cart. 127 | $group_id_in_cart = pmpro_get_group_id_for_level( $pmprowoo_product_levels[ $product_id ] ); 128 | if ( empty( $group_id_in_cart ) ) { 129 | continue; 130 | } 131 | 132 | // If the group ID in the cart matches the group ID of the product we are viewing, let's disable the purchase. 133 | if ( (int)$group_id_in_cart === (int)$group_id ) { 134 | add_action( 'woocommerce_single_product_summary', 'pmprowoo_purchase_disabled' ); 135 | return false; 136 | } 137 | } 138 | 139 | return $is_purchasable; 140 | } 141 | add_filter( 'woocommerce_is_purchasable', 'pmprowoo_is_purchasable', 10, 2 ); 142 | 143 | /** 144 | * Info message when attempting to add a 2nd membership level to the cart 145 | */ 146 | function pmprowoo_purchase_disabled() { 147 | $cart_url = wc_get_cart_url(); 148 | $product = wc_get_product(); 149 | $product_id = $product->get_id(); 150 | 151 | // Get cart contents and see if they're a membership product 152 | $membership_products_in_cart = pmprowoo_get_memberships_from_cart(); 153 | 154 | $membership_in_cart = in_array( $product_id, $membership_products_in_cart ); 155 | 156 | if ( ! $membership_in_cart ) { 157 | $message = sprintf( __( "You may only add one membership to your %scart%s.", 'pmpro-woocommerce' ), 158 | sprintf( '', esc_url( $cart_url ), esc_html__( 'Cart', 'pmpro-woocommerce' ) ), 159 | '' ); 160 | } else { 161 | $message = sprintf( __( "%s is already in your %scart%s.", 'pmpro-woocommerce' ), 162 | $product->get_name(), 163 | sprintf( '', esc_url( $cart_url ), esc_html__( 'Cart', 'pmpro-woocommerce' ) ), 164 | '' ); 165 | } 166 | ?> 167 |
168 |
169 | 170 |
171 |
172 | get_user_id(); 205 | if ( ! empty( $user_id ) && sizeof( $order->get_items() ) > 0 ) { 206 | foreach ( $order->get_items() as $item ) { 207 | // Get the product object from the ID of the item in the order. 208 | $_product = wc_get_product( $item['product_id'] ); 209 | 210 | if ( $_product->is_type( 'variation' ) ) { 211 | $product_id = $_product->get_parent_id(); 212 | } else { 213 | $product_id = $_product->get_id(); 214 | } 215 | 216 | if ( ! empty( $product_id ) && 217 | in_array( $product_id, $membership_product_ids ) ) { //not sure when a product has id 0, but the Woo code checks this 218 | 219 | // Check to see if the order is a renewal order for a subscription. If it is, bail. 220 | if ( function_exists( 'wcs_order_contains_renewal' ) ) { 221 | // If the user already has the level, let's just leave it and assume it's a renewal order. 222 | if ( wcs_order_contains_renewal( $order ) ) { 223 | if ( pmprowoo_user_has_active_membership_product_for_level( $user_id, $pmprowoo_product_levels[ $product_id ] ) ) { 224 | return; 225 | } 226 | } 227 | } 228 | 229 | //is there a membership level for this product? 230 | //get user id and level 231 | $pmpro_level = pmpro_getLevel( $pmprowoo_product_levels[ $product_id ] ); 232 | 233 | //if checking out for the same level they have, keep their old start date 234 | $sqlQuery = $wpdb->prepare( 235 | "SELECT startdate 236 | FROM {$wpdb->pmpro_memberships_users} 237 | WHERE user_id = %d 238 | AND membership_id = %d 239 | AND status = 'active' 240 | ORDER BY id DESC 241 | LIMIT 1", 242 | $user_id, 243 | $pmpro_level->id 244 | ); 245 | 246 | $old_startdate = $wpdb->get_var( $sqlQuery ); 247 | if ( ! empty( $old_startdate ) ) { 248 | $startdate = "'" . $old_startdate . "'"; 249 | } else { 250 | $startdate = "'" . current_time( 'mysql' ) . "'"; 251 | } 252 | 253 | //create custom level to mimic PMPro checkout 254 | $custom_level = array( 255 | 'user_id' => $user_id, 256 | 'membership_id' => $pmpro_level->id, 257 | 'code_id' => '', //will support PMPro discount codes later 258 | 'initial_payment' => $item['line_total'], 259 | 'billing_amount' => '', 260 | 'cycle_number' => '', 261 | 'cycle_period' => '', 262 | 'billing_limit' => '', 263 | 'trial_amount' => '', 264 | 'trial_limit' => '', 265 | 'startdate' => sanitize_text_field( $startdate ), 266 | 'enddate' => '0000-00-00 00:00:00', 267 | ); 268 | 269 | //set enddate 270 | if ( ! empty( $pmpro_level->expiration_number ) ) { 271 | $custom_level['enddate'] = date( "Y-m-d H:i:00", strtotime( "+ " . $pmpro_level->expiration_number . " " . $pmpro_level->expiration_period, current_time( 'timestamp' ) ) ); 272 | } 273 | 274 | /** 275 | * Filter for the level object. 276 | */ 277 | $custom_level = apply_filters( 'pmprowoo_checkout_level', $custom_level ); 278 | 279 | // Is MMPU activated? 280 | if ( function_exists( 'pmprommpu_addMembershipLevel' ) ) { 281 | // Allow filter to force add levels (ignore MMPU group level settings). 282 | $mmpu_force_add_level = apply_filters( 'pmprowoo_mmpu_force_add_level', false ); 283 | pmprommpu_addMembershipLevel( $custom_level, $user_id, $mmpu_force_add_level ); 284 | } else { 285 | // Only add the first membership level found. 286 | pmpro_changeMembershipLevel( $custom_level, $user_id ); 287 | break; 288 | } 289 | } 290 | } 291 | } 292 | } 293 | add_action( 'woocommerce_order_status_completed', 'pmprowoo_add_membership_from_order' ); 294 | 295 | /** 296 | * Cancel memberships when orders go into pending, processing, refunded, failed, or on hold. 297 | * 298 | * @param int $order_id 299 | */ 300 | function pmprowoo_cancel_membership_from_order( $order_id ) { 301 | global $pmprowoo_product_levels; 302 | 303 | // quitely exit if PMPro isn't active 304 | if ( ! defined( 'PMPRO_DIR' ) && ! function_exists( 'pmpro_init' ) ) { 305 | return; 306 | } 307 | 308 | //don't bother if array is empty 309 | if ( empty( $pmprowoo_product_levels ) ) { 310 | return; 311 | } 312 | 313 | //membership product ids 314 | $membership_product_ids = pmprowoo_get_membership_products_from_order( $order_id ); 315 | 316 | //get order 317 | $order = new WC_Order( $order_id ); 318 | 319 | //does the order have a user id and some products? 320 | $user_id = $order->get_user_id(); 321 | if ( ! empty( $user_id ) && sizeof( $order->get_items() ) > 0 ) { 322 | foreach ( $order->get_items() as $item ) { 323 | //not sure when a product has id 0, but the Woo code checks this 324 | if ( ! empty( $item['product_id'] ) && in_array( $item['product_id'], $membership_product_ids ) ) { 325 | 326 | //check if another active subscription exists 327 | if ( ! pmprowoo_user_has_active_membership_product_for_level( $user_id, $pmprowoo_product_levels[ $item['product_id'] ] ) ) { 328 | //is there a membership level for this product? 329 | //remove the user from the level 330 | pmpro_cancelMembershipLevel( $pmprowoo_product_levels[$item['product_id']], $user_id, 'cancelled' ); 331 | } 332 | } 333 | } 334 | } 335 | } 336 | add_action( "woocommerce_order_status_refunded", "pmprowoo_cancel_membership_from_order" ); 337 | add_action( "woocommerce_order_status_failed", "pmprowoo_cancel_membership_from_order" ); 338 | add_action( 'woocommerce_subscription_status_on-hold_to_active', 'pmprowoo_activated_subscription' ); 339 | add_action( "woocommerce_order_status_cancelled", "pmprowoo_cancel_membership_from_order" ); 340 | 341 | /** 342 | * Activate memberships when WooCommerce subscriptions change status. 343 | * 344 | * @param \WC_Subscription $subscription 345 | */ 346 | function pmprowoo_activated_subscription( $subscription ) { 347 | global $pmprowoo_product_levels; 348 | 349 | // quitely exit if PMPro isn't active 350 | if ( ! defined( 'PMPRO_DIR' ) && ! function_exists( 'pmpro_init' ) ) { 351 | return; 352 | } 353 | 354 | //don't bother if array is empty 355 | if ( empty( $pmprowoo_product_levels ) ) { 356 | return; 357 | } 358 | 359 | if ( is_numeric( $subscription ) ) { 360 | $subscription = wcs_get_subscription( $subscription ); 361 | } 362 | /* 363 | Does this order contain a membership product? 364 | Since v2 of WCSubs, we need to check all line items 365 | */ 366 | $order_id = $subscription->get_last_order(); 367 | if( version_compare( get_option( 'woocommerce_subscriptions_active_version' ), '2.0', '>' ) ) { 368 | $user_id = $subscription->get_user_id(); 369 | $items = $subscription->get_items(); 370 | } else { 371 | $order = wc_get_order( $order_id ); 372 | $items = $order->get_items(); 373 | $user_id = $order->get_user_id(); 374 | } 375 | 376 | if ( ! empty( $items ) && ! empty( $user_id ) ) { 377 | //membership product ids 378 | $membership_product_ids = pmprowoo_get_membership_products_from_order( $order_id ); 379 | 380 | //does the order item have a user id and a product? 381 | foreach ( $items as $item ) { 382 | 383 | if ( ! empty( $item['product_id'] ) && in_array( $item['product_id'], $membership_product_ids ) ) { 384 | // Is MMPU activated? 385 | if ( function_exists( 'pmprommpu_addMembershipLevel' ) ) { 386 | // Allow filter to force add levels (ignore MMPU group level settings). 387 | $mmpu_force_add_level = apply_filters( 'pmprowoo_mmpu_force_add_level', false ); 388 | pmprommpu_addMembershipLevel( $pmprowoo_product_levels[ $item['product_id'] ], $user_id, $mmpu_force_add_level ); 389 | } else { 390 | // Only add the first membership level found. 391 | pmpro_changeMembershipLevel( $pmprowoo_product_levels[ $item['product_id'] ], $user_id ); 392 | break; 393 | } 394 | } 395 | } 396 | } 397 | } 398 | add_action( 'woocommerce_subscription_status_active', 'pmprowoo_activated_subscription' ); 399 | add_action( 'woocommerce_subscription_status_on-hold_to_active', 'pmprowoo_activated_subscription' ); 400 | 401 | /** 402 | * Cancel memberships when WooCommerce subscriptions change status. 403 | * 404 | * @param \WC_Subscription $subscription 405 | */ 406 | function pmprowoo_cancelled_subscription( $subscription ) { 407 | global $pmprowoo_product_levels; 408 | 409 | // quitely exit if PMPro isn't active 410 | if ( ! defined( 'PMPRO_DIR' ) && ! function_exists( 'pmpro_init' ) ) { 411 | return; 412 | } 413 | 414 | //don't bother if array is empty 415 | if ( empty( $pmprowoo_product_levels ) ) { 416 | return; 417 | } 418 | 419 | if ( is_numeric( $subscription ) ) { 420 | $subscription = wcs_get_subscription( $subscription ); 421 | } 422 | 423 | /* 424 | Does this order contain a membership product? 425 | Since v2 of WCSubs, we need to check all line items 426 | */ 427 | $order_id = $subscription->get_last_order(); 428 | if( version_compare( get_option( 'woocommerce_subscriptions_active_version' ), '2.0', '>' ) ) { 429 | $user_id = $subscription->get_user_id(); 430 | $items = $subscription->get_items(); 431 | } else { 432 | $order = wc_get_order( $order_id ); 433 | $items = $order->get_items(); 434 | $user_id = $order->get_user_id(); 435 | } 436 | 437 | if ( ! empty( $items ) && ! empty( $user_id ) ) { 438 | //membership product ids 439 | $membership_product_ids = pmprowoo_get_membership_products_from_order( $order_id ); 440 | 441 | foreach ( $items as $item ) { 442 | //does the order have a user id and some products? 443 | if ( ! empty( $item['product_id'] && in_array($item['product_id'], $membership_product_ids)) ) { 444 | //check if another active subscription exists 445 | if ( ! pmprowoo_user_has_active_membership_product_for_level( $user_id, $pmprowoo_product_levels[ $item['product_id'] ] ) ) { 446 | //is there a membership level for this product? 447 | if( in_array($item['product_id'], $membership_product_ids) ){ 448 | //remove the user from the level 449 | pmpro_cancelMembershipLevel($pmprowoo_product_levels[$item['product_id']], $user_id); 450 | } 451 | } 452 | } 453 | } 454 | } 455 | } 456 | 457 | //WooCommerce Subscriptions v2 hooks 458 | add_action( 'woocommerce_subscription_status_cancelled', 'pmprowoo_cancelled_subscription', 10 ); 459 | add_action( 'woocommerce_subscription_status_trash', 'pmprowoo_cancelled_subscription', 10 ); 460 | add_action( 'woocommerce_subscription_status_expired', 'pmprowoo_cancelled_subscription', 10 ); 461 | add_action( 'woocommerce_subscription_status_on-hold', 'pmprowoo_cancelled_subscription', 10 ); 462 | add_action( 'woocommerce_scheduled_subscription_end_of_prepaid_term', 'pmprowoo_cancelled_subscription', 10 ); 463 | 464 | /** 465 | * Update Product Prices with Membership Price and/or Discount 466 | * 467 | * @param float $price 468 | * @param WC_Product $product 469 | * 470 | * @return string 471 | */ 472 | function pmprowoo_get_membership_price( $price, $product ) { 473 | global $current_user, $pmprowoo_member_discounts, $pmprowoo_product_levels, $pmprowoo_discounts_on_subscriptions; 474 | 475 | // quitely exit if PMPro isn't active 476 | if ( ! defined( 'PMPRO_DIR' ) && ! function_exists( 'pmpro_init' ) ) { 477 | return $price; 478 | } 479 | 480 | // make sure $product is a product object 481 | if (! is_object( $product ) ) { 482 | $product = wc_get_product( $product ); 483 | } 484 | 485 | // no product? bail 486 | if ( empty( $product ) ) { 487 | return $price; 488 | } 489 | 490 | // Get the ID for the product that we are currently getting a membership price for. 491 | if ( $product->get_type() === 'variation' ) { 492 | $product_id = $product->get_parent_id(); //for variations 493 | } else { 494 | $product_id = $product->get_id(); 495 | } 496 | 497 | $membership_product_ids = array_keys( $pmprowoo_product_levels ); 498 | $items = is_object( WC()->cart ) ? WC()->cart->get_cart_contents() : array(); // items in the cart 499 | 500 | //ignore membership products and subscriptions if we are set that way 501 | if ( ( ! $pmprowoo_discounts_on_subscriptions || $pmprowoo_discounts_on_subscriptions == 'No' ) && ( $product->is_type( array( 'subscription', 'variable-subscription', 'subscription_variation' ) ) || in_array( $product_id, $membership_product_ids, false ) ) ) { 502 | return $price; 503 | } 504 | 505 | // Get all membership level ids that will be given to the user after checkout. 506 | // Ignore the product that we are currently getting a membership price for. 507 | $cart_level_ids = array(); 508 | foreach ( $items as $item ) { 509 | if ( $item['product_id'] != $product->get_id() && in_array( $item['product_id'], $membership_product_ids ) ) { 510 | $cart_level_ids[] = $pmprowoo_product_levels[ $item['product_id'] ]; 511 | } 512 | } 513 | 514 | // Get the membership level ids that the user already has. 515 | $user_levels = pmpro_getMembershipLevelsForUser( $current_user->ID ); 516 | $user_level_ids = empty( $user_levels ) ? array() : wp_list_pluck( $user_levels, 'id' ); 517 | 518 | // Merge the cart levels and user levels and remove duplicates to get all levels that could discount this product. 519 | $discount_level_ids = array_unique( array_merge( $cart_level_ids, $user_level_ids ) ); 520 | 521 | // Find the lowest membership price for this product. 522 | $lowest_price = (float) $price; 523 | $lowest_price_level = null; // Needed for backwards compatibility for pmprowoo_get_membership_price filter. 524 | foreach ( $discount_level_ids as $level_id ) { 525 | $level_price = get_post_meta( $product_id, '_level_' . $level_id . '_price', true ); 526 | if ( ! empty( $level_price ) || $level_price === '0' || $level_price === '0.00' || $level_price === '0,00' ) { 527 | $level_price = (float) $level_price; 528 | if ( $level_price < $lowest_price ) { 529 | $lowest_price = $level_price; 530 | $lowest_price_level = $level_id; 531 | } 532 | } 533 | } 534 | 535 | // Find the highest membership discount for this product. 536 | $highest_discount = 0; 537 | foreach ( $discount_level_ids as $level_id ) { 538 | if ( ! empty( $pmprowoo_member_discounts ) && ! empty( $pmprowoo_member_discounts[ $level_id ] ) ) { 539 | $level_discount = (float) $pmprowoo_member_discounts[ $level_id ]; 540 | if ( $level_discount > $highest_discount ) { 541 | $highest_discount = $level_discount; 542 | } 543 | } 544 | } 545 | $discount_price = $lowest_price - ( $lowest_price * $highest_discount ); 546 | 547 | // Filter the result. 548 | return apply_filters( 'pmprowoo_get_membership_price', $discount_price, $lowest_price_level, $price, $product ); 549 | } 550 | 551 | 552 | // only change price if this is on the front end 553 | if ( ! is_admin() || defined( 'DOING_AJAX' ) ) { 554 | add_filter( "woocommerce_product_get_price", "pmprowoo_get_membership_price", 10, 2 ); 555 | add_filter( "woocommerce_product_variation_get_price", "pmprowoo_get_membership_price", 10, 5 ); 556 | add_filter( "woocommerce_variable_price_html", "pmprowoo_woocommerce_variable_price_html", 10, 2 ); 557 | } 558 | 559 | /** 560 | * Update Variable Product Price Range 561 | * 562 | * @param string $variation_range_html 563 | * @param \WC_Product_Variable $product 564 | * 565 | * @return string 566 | */ 567 | function pmprowoo_woocommerce_variable_price_html( $variation_range_html, $product ) { 568 | $prices = $product->get_variation_prices( true ); 569 | $prices_product_ids = array_keys( $prices['price']) ; 570 | 571 | $min_price = current( $prices['price'] ); 572 | $min_price_product_id = current( $prices_product_ids ); 573 | $max_price = end( $prices['price'] ); 574 | $max_price_product_id = end( $prices_product_ids ); 575 | 576 | $member_min_price = pmprowoo_get_membership_price( $min_price, $min_price_product_id ); 577 | $member_max_price = pmprowoo_get_membership_price( $max_price, $max_price_product_id ); 578 | 579 | // If variation price for min and max price are identical, show one price only. 580 | if ( $member_min_price === $member_max_price ) { 581 | return wc_price( $member_max_price ); 582 | } 583 | 584 | return wc_format_price_range( $member_min_price, $member_max_price ); 585 | } 586 | 587 | /** 588 | * Add PMPro Tab to Edit Products page 589 | */ 590 | function pmprowoo_tab_options_tab() { 591 | ?> 592 |
  • 593 | id; 609 | $membership_level_options[ $key ] = $option->name; 610 | } 611 | ?> 612 |
    613 | 614 |
    615 |

    616 | '_membership_product_level', 622 | 'label' => __( 'Membership Product', 'pmpro-woocommerce' ), 623 | 'options' => $membership_level_options, // phpcs:ignore WordPress.Security.EscapeOutput 624 | ) 625 | ); 626 | 627 | // Membership Product 628 | if ( ! empty( $post->ID ) ) { 629 | $cbvalue = get_post_meta( $post->ID, '_membership_product_autocomplete', true ); 630 | } 631 | 632 | if ( empty( $cbvalue ) ) { 633 | $cbvalue = NULL; 634 | } 635 | 636 | // woocommerce_wp_checkbox() escapes attributes for us. 637 | woocommerce_wp_checkbox( 638 | array( 639 | 'id' => '_membership_product_autocomplete', 640 | 'label' => __( 'Autocomplete Order Status', 'pmpro-woocommerce' ), 641 | 'description' => __( "Check this to mark the order as completed immediately after checkout to activate the associated membership.", 'pmpro-woocommerce' ), 642 | 'cbvalue' => $cbvalue, // phpcs:ignore WordPress.Security.EscapeOutput 643 | ) 644 | ); 645 | 646 | ?> 647 |
    648 |
    649 |

    650 |

    Edit your membership levels to set a global percent discount for all products.', 'pmpro-woocommerce' ), esc_url( admin_url( 'admin.php?page=pmpro-membershiplevels' ) ) ); ?>

    651 | '_level_' . $level->id . '_price', 657 | 'label' => sprintf( esc_html__( '%s Price (%s)', 'pmpro-woocommerce' ), $level->name, get_woocommerce_currency_symbol() ), 658 | 'placeholder' => '', 659 | 'type' => 'text', 660 | 'desc_tip' => 'true', 661 | 'data_type' => 'price', 662 | ) 663 | ); 664 | } 665 | ?> 666 |
    667 | 668 |
    669 | id . "_price" ] ) ); 715 | update_post_meta( $post_id, '_level_' . $level->id . '_price', $price ); 716 | } 717 | } 718 | 719 | } 720 | add_action( 'woocommerce_process_product_meta', 'pmprowoo_process_product_meta' ); 721 | 722 | /** 723 | * Add Membership Discount Field to Edit Membership Page 724 | */ 725 | function pmprowoo_add_membership_discount() { 726 | global $pmprowoo_member_discounts; 727 | $level_id = intval( $_REQUEST['edit'] ); 728 | if ( $level_id > 0 && ! empty( $pmprowoo_member_discounts ) && ! empty( $pmprowoo_member_discounts[ $level_id ] ) ) { 729 | $membership_discount = $pmprowoo_member_discounts[ $level_id ] * 100; 730 | } //convert back to % 731 | else { 732 | $membership_discount = ''; 733 | } 734 | ?> 735 |
    736 |

    737 |

    738 | 739 | 740 | 741 | 744 | 748 | 749 | 750 |
    743 | 745 | 747 |
    751 | 'pmprowoo_discounts_on_subscriptions', 784 | 'field_type' => 'select', 785 | 'label' => esc_html__( 'Apply Member Discounts to WooCommerce Subscription and Membership Products?', 'pmpro-woocommerce' ), 786 | 'value' => esc_html__( 'No', 'pmpro-woocommerce' ), 787 | 'options' => array( esc_html__( 'Yes', 'pmpro-woocommerce' ), esc_html__( 'No', 'pmpro-woocommerce' ) ), 788 | ); 789 | 790 | return $fields; 791 | } 792 | add_filter( 'pmpro_custom_advanced_settings', 'pmprowoo_custom_settings' ); 793 | 794 | /** 795 | * Force account creation at WooCommerce checkout if the cart includes a membership product. 796 | */ 797 | function pmprowoo_woocommerce_after_checkout_registration_form() { 798 | global $woocommerce, $pmprowoo_product_levels; 799 | 800 | // grab items from the cart 801 | $items = $woocommerce->cart->cart_contents; 802 | 803 | //membership product ids 804 | $membership_product_ids = array_keys( $pmprowoo_product_levels ); 805 | 806 | // Search for any membership level products. IF found, use first one as the cart membership level. 807 | foreach ( $items as $item ) { 808 | if ( in_array( $item['product_id'], $membership_product_ids ) ) { 809 | $cart_membership_level = $pmprowoo_product_levels[ $item['product_id'] ]; 810 | break; 811 | } 812 | } 813 | 814 | if ( ! empty( $cart_membership_level ) ) { 815 | ?> 816 | 820 | "pmpro_bfirstname", 846 | "billing_last_name" => "pmpro_blastname", 847 | "billing_address_1" => "pmpro_baddress1", 848 | "billing_address_2" => "pmpro_baddress2", 849 | "billing_city" => "pmpro_bcity", 850 | "billing_postcode" => "pmpro_bzipcode", 851 | "billing_state" => "pmpro_bstate", 852 | "billing_country" => "pmpro_bcountry", 853 | "billing_phone" => "pmpro_bphone", 854 | "billing_email" => "pmpro_bemail", 855 | "pmpro_bfirstname" => "billing_first_name", 856 | "pmpro_blastname" => "billing_last_name", 857 | "pmpro_baddress1" => "billing_address_1", 858 | "pmpro_baddress2" => "billing_address_2", 859 | "pmpro_bcity" => "billing_city", 860 | "pmpro_bzipcode" => "billing_postcode", 861 | "pmpro_bstate" => "billing_state", 862 | "pmpro_bcountry" => "billing_country", 863 | "pmpro_bphone" => "billing_phone", 864 | "pmpro_bemail" => "billing_email", 865 | ); 866 | 867 | //check if this user meta is to be mirrored 868 | foreach ( $um as $left => $right ) { 869 | if ( $meta_key == $left && ! in_array( $left, $pmprowoo_updated_user_meta[ $object_id ] ) ) { 870 | $pmprowoo_updated_user_meta[ $object_id ][] = $left; 871 | update_user_meta( $object_id, $right, $meta_value ); 872 | } 873 | } 874 | } 875 | add_action( 'update_user_meta', 'pmprowoo_update_user_meta', 10, 4 ); 876 | 877 | /** 878 | * Need to add the meta_id for add filter 879 | * 880 | * @param int $object_id 881 | * @param string $meta_key 882 | * @param mixed $meta_value 883 | */ 884 | function pmprowoo_add_user_meta( $object_id, $meta_key, $meta_value ) { 885 | pmprowoo_update_user_meta( null, $object_id, $meta_key, $meta_value ); 886 | } 887 | add_action( 'add_user_meta', 'pmprowoo_add_user_meta', 10, 3 ); 888 | 889 | /** 890 | * Apply end date extension filter to woo commerce checkouts as well 891 | * 892 | * $level_obj in the function is an object with the stored values for the level 893 | * 894 | * @param array $level_array - custom_level array for the pmpro_changeMembershipLevel call 895 | * 896 | * @return array 897 | */ 898 | function pmprowoo_checkout_level_extend_memberships( $level_array ) { 899 | $level_obj = pmpro_getLevel( $level_array['membership_id'] ); 900 | 901 | //does this level expire? are they an existing user of this level? 902 | if ( ! empty( $level_obj ) && ! empty( $level_obj->expiration_number ) && pmpro_hasMembershipLevel( $level_obj->id, $level_array['user_id'] ) ) { 903 | //get the current enddate of their membership 904 | $user = get_userdata( $level_array['user_id'] ); 905 | $user->membership_level = pmpro_getSpecificMembershipLevelForUser( $user->ID, $level_obj->id ); 906 | $expiration_date = $user->membership_level->enddate; 907 | 908 | 909 | // Is user renewing an existing membership? 910 | if ( ! empty( $expiration_date ) && $expiration_date > current_time( 'timestamp' ) ) { 911 | // Extend membership 912 | $level_array['enddate'] = date( "Y-m-d H:i:00", strtotime( "+ $level_obj->expiration_number $level_obj->expiration_period", $expiration_date ) ); 913 | } 914 | } 915 | 916 | return $level_array; 917 | } 918 | add_filter( 'pmprowoo_checkout_level', 'pmprowoo_checkout_level_extend_memberships' ); 919 | 920 | /** 921 | * Enqueue Admin CSS 922 | */ 923 | function pmprowoo_admin_enqueue_css() { 924 | wp_register_style( 'pmpro-woocommerce-admin', plugins_url( '/css/admin.css', __FILE__ ), null ); 925 | wp_enqueue_style( 'pmpro-woocommerce-admin' ); 926 | } 927 | add_action( 'admin_enqueue_scripts', 'pmprowoo_admin_enqueue_css' ); 928 | 929 | /** 930 | * Check if Autocomplete setting is active for the product. 931 | * 932 | * @param int $order_id 933 | */ 934 | function pmprowoo_order_autocomplete( $order_id ) { 935 | //get the existing order 936 | $order = new WC_Order( $order_id ); 937 | 938 | //assume we won't autocomplete 939 | $autocomplete = false; 940 | 941 | //get line items 942 | if ( count( $order->get_items() ) > 0 ) { 943 | foreach ( $order->get_items() as $item ) { 944 | if ( $item['type'] == 'line_item' ) { 945 | 946 | //get product info and check if product is marked to autocomplete 947 | $_product = wc_get_product( $item['product_id'] ); 948 | 949 | if( ! $_product instanceof \WC_Product ) { 950 | continue; 951 | } 952 | 953 | if ( $_product->is_type( 'variation' ) ) { 954 | $product_id = $_product->get_parent_id(); 955 | } else { 956 | $product_id = $_product->get_id(); 957 | } 958 | 959 | $product_autocomplete = get_post_meta( $product_id, '_membership_product_autocomplete', true ); 960 | 961 | //if any product is not virtual and not marked for autocomplete, we won't autocomplete 962 | if ( ! $_product->is_virtual() && ! $product_autocomplete ) { 963 | //found a non-virtual, non-membership product in the cart 964 | $autocomplete = false; 965 | break; 966 | } else if ( $product_autocomplete ) { 967 | //found a membership product in the cart marked to autocomplete 968 | $autocomplete = true; 969 | } 970 | } 971 | } 972 | } 973 | 974 | //change status if needed 975 | if ( ! empty( $autocomplete ) ) { 976 | $order->update_status( 'completed', esc_html__( 'Autocomplete via PMPro WooCommerce.', 'pmpro-woocommerce' ) ); 977 | } 978 | } 979 | add_filter( 'woocommerce_order_status_processing', 'pmprowoo_order_autocomplete' ); 980 | 981 | /** 982 | * Get products that are in the cart that are attached to a level ID. 983 | * Return product ID's of membership level products in the cart. 984 | * 985 | * @return array $levels The products and levels. 986 | */ 987 | function pmprowoo_get_memberships_from_cart() { 988 | global $woocommerce, $pmprowoo_product_levels; 989 | 990 | $membership_product_ids = array_keys( $pmprowoo_product_levels ); 991 | $cart_items = $woocommerce->cart->cart_contents; 992 | $membership_product_ids_in_cart = array(); 993 | 994 | // Nothing in the cart, just bail. 995 | if ( empty( $cart_items ) ) { 996 | return $membership_product_ids_in_cart; 997 | } 998 | 999 | // Get all product IDs in the cart 1000 | $product_ids = array(); 1001 | foreach( $cart_items as $item ) { 1002 | $product_ids[] = $item['product_id']; 1003 | } 1004 | 1005 | // Compare values between the two arrays of membership products and items in the cart. 1006 | $membership_product_ids_in_cart = array_values( array_intersect( $membership_product_ids, $product_ids ) ); 1007 | 1008 | return $membership_product_ids_in_cart; 1009 | } 1010 | 1011 | function pmpro_woocommerce_load_textdomain() { 1012 | load_plugin_textdomain( 'pmpro-woocommerce', false, basename( dirname( __FILE__ ) ) . '/languages' ); 1013 | } 1014 | add_action( 'plugins_loaded', 'pmpro_woocommerce_load_textdomain' ); 1015 | 1016 | /** 1017 | * Confirm that PMPro WooCommerce is compatible with HPOS (Custom Order Tables). 1018 | * Generally we store things to products, not orders. 1019 | * 1020 | * @since 1.8 1021 | */ 1022 | function pmprowoo_compatible_for_hpos() { 1023 | if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 1024 | \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 1025 | } 1026 | } 1027 | add_action( 'before_woocommerce_init', 'pmprowoo_compatible_for_hpos' ); 1028 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Paid Memberships Pro Integration with WooCommerce === 2 | Contributors: strangerstudios, paidmembershipspro 3 | Tags: woocommerce membership, woocommerce, paid memberships pro, woocommerce subscription, pmpro 4 | Requires at least: 5.2 5 | Tested up to: 6.5 6 | Requires PHP: 5.6 7 | Stable tag: 1.10 8 | License: GPLv2 or later 9 | License URI: http://www.gnu.org/licenses/gpl-2.0.html 10 | 11 | Integrates Paid Memberships Pro with WooCommerce to offer a global members-only discount, set member price by product or sell membership as a product. 12 | 13 | == Description == 14 | 15 | ### The best way to add memberships and members-only discounts in your WooCommerce store. 16 | 17 | Sell memberships as a WooCommerce product and set members-only discounts in your ecommerce store. This free plugin integrates Paid Memberships Pro with WooCommerce with three key features: 18 | 19 | ### 1. Set Custom Product Pricing Based on Membership Level 20 | 21 | Each product in WooCommerce can have unique pricing set for your members only. 22 | 23 | When a logged in member views the product page, they will see their custom pricing and be able to purchase your products at this special price. 24 | 25 | ### 2. Set a Storewide Discount for Members by Level 26 | 27 | Each membership level in Paid Memberships Pro can have a unique global percentage discount for your ecommerce store. 28 | 29 | When a logged in member views the product page, they will see their adjusted pricing based on this storewide discount. 30 | 31 | https://www.youtube.com/watch?v=BAA56eTRt4Q 32 | 33 | ### 3. Sell Membership as a WooCommerce Product 34 | 35 | Each product can be assigned as a "Membership Product". Customers that purchase this product in WooCommerce will be assigned a membership level in Paid Memberships Pro. Using the features of PMPro, you can restrict member access to all types of premium content, courses, and community features. 36 | 37 | While [Paid Memberships Pro](https://www.paidmembershipspro.com) has recurring subscriptions built-in, the default WooCommerce plugin only allows products to have a one-time payment. If you must use this plugin to sell recurring memberships through WooCommerce, you will also need WooCommerce Subscriptions. 38 | 39 | Learn more about how to [sell memberships using PMPro and WooCommerce](https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce#membership-product) and [how to set members-only pricing in WooCommerce](https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce#member-discount) in our documentation site. 40 | 41 | ### Bonus Features of the Paid Memberships Pro Integration with WooCommerce 42 | 43 | = Members Only Products = 44 | If you'd like to offer certain products to members only, see the [Custom Post Type Membership Access Add On]( 45 | https://www.paidmembershipspro.com/add-ons/custom-post-type-membership-access/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce). 46 | 47 | = Members Only Store = 48 | If your entire store is locked for members only, see this post on [Locking Your Entire eCommerce Shop for Members-Only](https://www.paidmembershipspro.com/lock-entire-ecommerce-shop-members/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce 49 | ). 50 | 51 | = Catalog Mode for Non-Members = 52 | If you would like non-members the ability to see your store items but restrict them from seeing prices and ability to purchase, see this post on [Turn your WooCommerce Store into a Catalog for Non Members](https://www.paidmembershipspro.com/turn-your-woocommerce-store-into-a-catalog-for-non-members/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce). 53 | 54 | ### About Paid Memberships Pro 55 | 56 | [Paid Memberships Pro is a WordPress membership plugin](https://www.paidmembershipspro.com/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce) that puts you in control. Create what you want and release in whatever format works best for your business. 57 | 58 | * Courses & E-Learning 59 | * Private podcasts 60 | * Premium Newsletters 61 | * Private Communities 62 | * Sell physical & digital goods 63 | 64 | Paid Memberships Pro allows anyone to build a membership site—for free. Restrict content, accept payment, and manage subscriptions right from your WordPress admin. 65 | 66 | Paid Memberships Pro is built "the WordPress way" with a lean core plugin and over 75 Add Ons to enhance every aspect of your membership site. Each business is different and we encourage customization. For our members we have a library of 300+ recipes to personalize your membership site. 67 | 68 | Paid Memberships Pro is the flagship product of Stranger Studios. We are a bootstrapped company which grows when membership sites like yours grow. That means we focus our entire company towards helping you succeed. 69 | 70 | [Try Paid Memberships Pro entirely for free](https://www.paidmembershipspro.com) and see why 100,000+ sites trust us to help them #GetPaid. 71 | 72 | ### Read More 73 | 74 | Want more information on selling memberships and subscriptions with WooCommerce, members-only product pricing, and WordPress membership sites? Have a look at: 75 | 76 | * The [Paid Memberships Pro](https://www.paidmembershipspro.com/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce) official homepage. 77 | * The [WooCommerce Integration for PMPro documentation page](https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce). 78 | * Also follow PMPro on [Twitter](https://twitter.com/pmproplugin), [YouTube](https://www.youtube.com/channel/UCFtMIeYJ4_YVidi1aq9kl5g) & [Facebook](https://www.facebook.com/PaidMembershipsPro/). 79 | 80 | == Installation == 81 | 82 | Note: You must have [Paid Memberships Pro](https://www.paidmembershipspro.com) and [WooCommerce](https://wordpress.org/plugins/woocommerce/) installed and activated on your site. 83 | 84 | ### Install PMPro WooCommerce from within WordPress 85 | 86 | 1. Visit the plugins page within your dashboard and select "Add New" 87 | 1. Search for "PMPro WooCommerce" 88 | 1. Locate this plugin and click "Install" 89 | 1. Activate "Paid Memberships Pro - WooCommerce Add On" through the "Plugins" menu in WordPress 90 | 1. Go to "after activation" below. 91 | 92 | ### Install PMPro WooCommerce Manually 93 | 94 | 1. Upload the `pmpro-woocommerce` folder to the `/wp-content/plugins/` directory 95 | 1. Activate "Paid Memberships Pro - WooCommerce" through the "Plugins" menu in WordPress 96 | 1. Go to "after activation" below. 97 | 98 | ### After Activation: Configure Plugin Settings 99 | 100 | = Create a Membership Product = 101 | 1. Edit a product or add a new product. 102 | 2. Select the "Membership" tab in the "Product Data" metabox. 103 | 3. Select a level from the "Membership Product" dropdown. 104 | 4. Save changes. 105 | 106 | = Set Member Discount Pricing on a Product = 107 | 1. Edit a product or add a new product. 108 | 2. Select the "Membership" tab in the "Product Data" metabox. 109 | 3. Set a price for one or more levels in the "Member Discount Pricing" section. 110 | 4. Save changes. 111 | 112 | = Set a Global Shop Discount for Members = 113 | 1. Edit a membership level under Membership > Settings. 114 | 2. Locate the "Set Membership Discount" section. 115 | 3. Add a percent discount to the field. 116 | 4. Save changes. 117 | 118 | Visit our documentation site to [learn more about the settings, access custom code recipes and tutorials, and view a list of compatibility with other Paid Memberships Pro Add Ons](https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-woocommerce). 119 | 120 | == Frequently Asked Questions == 121 | 122 | = I found a bug in the plugin. = 123 | 124 | Please post it in the issues section of GitHub and we'll fix it as soon as we can. Thanks for helping. https://github.com/strangerstudios/pmpro-woocommerce/issues 125 | 126 | == Screenshots == 127 | 128 | 1. The "Membership" meta box on a single product. Optionally use this WooCommerce Product to buy a PMPro Membership Level or set specific pricing based on membership level for each product. 129 | 2. The "Set Membership Discount" field on the "Edit Membership Level" page (Memberships > Settings > Membership Levels > Edit). 130 | 131 | == Changelog == 132 | = 1.10 - 2024-10-21 = 133 | * FEATURE: Now updating the plugin from paidmembershipspro.com. 134 | * ENHANCEMENT: Updated translation files bundled with the plugin. 135 | * BUG FIX: Fixed strings that were not being translated. #206 (@DAnn2012) 136 | 137 | = 1.9.1 - 2024-05-27 = 138 | * BUG FIX: Fixes an issue for checkout, when a membership-linked product only allows one product per checkout. (@dparker1005) 139 | 140 | = 1.9 - 2024-03-11 = 141 | * ENHANCEMENT: Added support for Paid Memberships Pro 3.0+ to allow multiple level purchases within a single cart if the level linked to the product allows multiple levels at once. 142 | * ENHANCEMENT/BUG FIX: Fixed an issue where Variable Subscription products did not handle cancellations correctly. 143 | 144 | = 1.8 - 2023-07-10 = 145 | * ENHANCEMENT: Mark Paid Memberships Pro Integration with WooCommerce compatible with Custom Order Tables. 146 | * ENHANCEMENT: Shows a message that the membership product is already in the cart when viewing the same product in the store. 147 | * ENHANCEMENT: Stop Woocommerce subscription renewals from changing the user's membership level to the same level. 148 | * BUG FIX: Fixed an issue where simple variation subscriptions were being discounted incorrectly, when set to not discount level products. 149 | 150 | = 1.7.7 - 2023-02-02 = 151 | * BUG FIX: Fixed an issue where the "Autocomplete Order Status" option wasn't saving correctly. 152 | 153 | = 1.7.6 - 2023-01-24 = 154 | * SECURITY: Escaping and sanitization updates. 155 | * ENHANCEMENT: Updated readme, banner, and thumbnail assets. 156 | 157 | = 1.7.5 - 2023-01-17 = 158 | * ENHANCEMENT: Support Multiple Memberships Per User. If a member holds more than one level, give the member the best discount available to their levels. 159 | * ENHANCEMENT: Added functionality to autocomplete variation products. 160 | * ENHANCEMENT: Improved localization on strings in the plugin. 161 | * BUG FIX: Fixed a fatal error when the product item would be false in some cases and we tried to get the product ID. 162 | 163 | = 1.7.4 - 2022-02-03 = 164 | * BUG FIX: Fixed issue where renewal purchases was extending member's expiration date by double. (@dparker1005) 165 | * BUG FIX/ENHANCEMENT: Fixed issues with the Gift Recipient not saving in newer WooCommerce versions. (@contemplate) 166 | 167 | = 1.7.3 - 2021-08-25 = 168 | * ENHANCEMENT: Tested up to WooCommerce 5.6.0. 169 | * ENHANCEMENT: Added support for time in expiration dates when extending or renewing a level and checking out for a new membership level. 170 | * BUG FIX: Fixed an issue where variation prices would show twice if the min and max price was identical. (Thanks, ArdiNEC on GitHub) 171 | * BUG FIX: Fixed an issue of a non-numeric warning value when discount was empty. 172 | * BUG FIX: Fixed deprecated function warnings. 173 | 174 | = 1.7.2 - 2021-03-13 = 175 | * ENHANCEMENT: Tested up to WooCommerce 5.1.0. 176 | * ENHANCEMENT: Added .pot file and British English po/mo files. 177 | * BUG FIX: Fixed issue where memberships associated with subscriptions in pending-cancel status were cancelled. We now wait for the full canceled status. 178 | * BUG FIX: When variable products are used, we will look for a membership price on the parent product. No support for member prices on variations yet. 179 | * BUG FIX: Removed use of deprecated $order->get_product_from_item() method. (Thanks, ogiebobogh on GitHub) 180 | 181 | = 1.7.1 - 2021-01-13 = 182 | * BUG FIX: Fixed issue where discount for membership products would be applied when shouldn't. 183 | * ENHANCEMENT: Improved wording on the Advanced Settings area for Membership and WooCommerce Subscriptions discount option. 184 | 185 | = 1.7 - 2020-05-01 = 186 | * BUG FIX: Fixed bug where marking an order expired or cancelled could impact other subscriptions. 187 | * BUG FIX: Fixed typo with `woocommerce_order_status_on-hold`. 188 | * BUG FIX: Fixed bug that kept the "Apply Member Discounts to WC Subscription Products?" setting (under Memberships -> Settings -> Advanced) from working properly. 189 | * BUG FIX/ENHANCEMENT: Checked that $product is actually a `product` post_type when checking if user has active membership for level. 190 | * BUG FIX/ENHANCEMENT: Improved checks for cancelling membership if membership product expires. 191 | * ENHANCEMENT: Added function `pmprowoo_user_has_active_membership_product_for_level` to return whether a user has an active WooCommerce product that gives membership. 192 | * ENHANCEMENT: Updated tested up to value for WooCommerce to v4.0 and WordPress to v5.4 193 | 194 | = 1.6.1 - 2018-06-25 = 195 | * BUG FIX: Fixed fatal error in pmprowoo_get_membership_products_from_order() that was happening on some systems. 196 | * ENHANCEMENT: Localization/GlotPress support. 197 | 198 | = 1.6 - 2018-06-19 = 199 | * BUG FIX: Fixed bug when deselecting the autocomplete option on a membership product. 200 | * BUG FIX: Now checking if a user has a different subscription linked to their membership level before removing a user's membership level. Users switching between subscriptions for the same level would have their level removed. (Thanks, Ted Barnett) 201 | * BUG FIX: Fixed issues when a product with a sale price also has membership pricing. 202 | * BUG FIX/ENHANCEMENT: Updated to work with the latest versions of WooCommerce (3.4.2) and WooCommerce Subscriptions (2.2.22). 203 | * ENHANCEMENT: Added a filter pmprowoo_get_membership_price, which can be used to support variable products via custom code (like this https://gist.github.com/ideadude/5c7ed35a50087178a47d92b192933614) 204 | * ENHANCEMENT: Added support for PMPro Multiple Memberships per User. 205 | 206 | = 1.5 = 207 | * BUG/FIX: Various PHP Warning messages (Deprecated functionality) 208 | * ENHANCEMENT: Prevents a user from adding more than a single membership product to the shopping cart 209 | * ENHANCEMENT: Improved function documentation by adding the "WC requires at least" and "WC tested up to" fields to the plugin header. 210 | 211 | = 1.4.5 = 212 | * BUG: Fixed issue where since WC v3.0 variable products were not having their prices adjusted properly based on the membership pricing settings. 213 | 214 | = 1.4.4 = 215 | * BUG: No longer cancelling out other fields set via the pmpro_custom_advanced_settings filter. (Thanks, Nurul Umbhiya) 216 | 217 | = 1.4.3 = 218 | * BUG: Now using the woocommerce_product_get_price filter instead of woocommerce_get_price. 219 | 220 | = 1.4.2 = 221 | * BUG: Fixed bug with loading our CSS. (Thanks, Hogash and VR51 on GitHub) 222 | 223 | = 1.4.1 = 224 | * BUG: Fixed typo in our add_action call so PMPro memberships are cancelled when the WooCommerce Subscriptions woocommerce_scheduled_subscription_end_of_prepaid_term hook fires. 225 | 226 | = 1.4 = 227 | * FEATURE: If the PMPro Gift Levels Addon is also active, adds settings to set a product to generate and email a gift certificate after purchase. (Thanks, Ted Barnett) 228 | * BUG/FIX: Updated to fully support the new WooCommerce v2+ Subscriptions hooks for activation and cancelling. No longer supporting older versions of WC Subscriptions. 229 | * BUG/FIX: Moved CSS load to proper WordPress action hook 230 | * BUG/ENHANCEMENT: Configure proper text domain for translation 231 | * BUG/ENHANCEMENT: Updated action hook for deprecated WooCommerce hooks 232 | * ENHANCEMENT: Wrapping all strings for translation and using the proper text domain (pmpro-woocommerce) to support GlotPress translations. 233 | 234 | = 1.3.1 = 235 | * BUG: Fixed issue where products with blank membership pricing were being marked as free for members. Use "0", "0.00", or "0,00" to mark something as free. Use blank ("") to have a product use the main price or sale price. 236 | * ENHANCEMENT: Made the wording of the member discount a bit more clear on the edit level page. 237 | 238 | = 1.3 = 239 | * FEATURE: Added a setting to the membership section of the edit product page with a checkbox to "mark the order as completed immediately after checkout to activate the associated membership". 240 | * BUG: Fixed bug when setting membership price to 0. 241 | * BUG: Fixed PHP notices on WooCommerce single product page when PMPro membership price discount was empty. 242 | * BUG: Fixed issue where member prices were not being applied to products for members. 243 | 244 | = 1.2.11 = 245 | * BUG: Fixed bug where site would crash (PHP whitecreen) if Paid Memberships Pro was not active. 246 | 247 | = 1.2.10 = 248 | * BUG: Fixed bug when applying membership discounts to membership products and subscriptoins. 249 | * BUG: Fixed warnings on edit membership level page. 250 | 251 | = 1.2.9 = 252 | * Hooking into scheduled_subscription_end_of_prepaid_term to cancel PMPro memberships for manually renewing WooCommerce Subscriptions when they hit expiration. 253 | 254 | = 1.2.8 = 255 | * Using current_time('timestamp') in a couple strtotime calls. 256 | * Added links to docs and support in the "plugin row meta". 257 | 258 | = 1.2.7 = 259 | * Fixed bug where startdate was not being set correctly for new users. (Thanks, liferaft) This script can be used to fix startdates for old members: https://gist.github.com/strangerstudios/4604f62e9812cf3afde7 260 | 261 | = 1.2.6 = 262 | * Commented out filters on "woocommerce_order_status_pending" and "woocommerce_order_status_processing" hooks. This keeps PMPro from removing a user's membership level when they are renewing which can cause issues. (Thanks, Trisha Cupra and others.) 263 | 264 | = 1.2.5.2 = 265 | * Fixed bug with getting the expiration_number for levels with an X months expiration. (Thanks, Arnaud Devic) 266 | 267 | = 1.2.5.1 = 268 | * Fixed the pmprowoo_checkout_level_extend_memberships() filter added in 1.2.5. 269 | 270 | = 1.2.5 = 271 | * Now applying end date extension filter to woo commerce checkouts as well. So if an existing member purchases a product for their level that has an end date, their end date will be extended from the old end date. (Thanks, trishacupra) 272 | 273 | = 1.2.4 = 274 | * Fixed bug with WooCommerce Subscriptions being put "on hold". 275 | * Fixed bug when entering a membership price > 1000. 276 | * Fixed bug on some setups which set membership price to 0 if nothing was entered. 277 | 278 | = 1.2.3 = 279 | * Fixed bug when setting member price to "0" in product settings. 280 | 281 | = 1.2.2 = 282 | * Added option to "Apply Member Discounts to WC Subscription Products?" to the PMPro Advanced Settings tab. 283 | * Fixed bug where membership discounts wouldn't be applied if no membership products were in the cart. 284 | * WooCommerce now mimics PMPro checkout, creating a custom level array instead of passing the ID. So if your level has an expiration number and period, it will be used when adding the level to the user checking out in WooCommerce... i.e. expiration dates "work" now. You can filter the level information using the pmprowoo_checkout_level filter. 285 | * Added pmprowoo_checkout_level filter to allow filtering the checkout level (to use PMPro expiration dates, etc. if Subscriptions addon is not installed) 286 | 287 | = 1.2.1 = 288 | * Fixed updating of WooCommerce billing address user meta when brand new users checkout with PMPro. 289 | 290 | = 1.2 - 2014-04-23 = 291 | * Updating user meta for billing address when the Woo Commerce billing address is updated and vice versa. 292 | 293 | = 1.1.1 = 294 | * Fixed fatal error that would be thrown if PMPro is not also activated. 295 | 296 | = 1.1 = 297 | * Fixed adding/updating membership when order status is changed to completed 298 | 299 | = 1.0 - 2014-02-26 = 300 | * Released to the WordPress repository. 301 | 302 | = .3.2 = 303 | * Fixed a bug where the get_price filter wasn't running when products/prices were loaded over AJAX (e.g. in the order review). 304 | * Added code to force account creation at checkout if the cart includes a membership level. 305 | 306 | = .3.1 = 307 | * Fixed bug where products were erroneously counted as "subscription products" and thus discounts may not apply. You may have to edit these products and click "update" to get the settings to save correctly. 308 | 309 | = .3 = 310 | * Added membership products 311 | * Added membership discounts 312 | * Moved PMPro options to separate tab 313 | 314 | = .2 = 315 | * Added per level pricing to the edit product page. (Thanks, jessica o) 316 | 317 | = .1 = 318 | * This is the initial version of the plugin. 319 | 320 | == Upgrade Notice == 321 | 322 | = 1.4 = 323 | Fixes bugs related to the WooCommerce Subscriptions v2 update. Added support for translations. PLEASE NOTE that PMPro WooCommerce will no longer support older versions of WooCommerce Subscriptions. Make sure all plugins are up to date. 324 | --------------------------------------------------------------------------------