Changeset 2417553
- Timestamp:
- 11/12/2020 11:22:35 PM (5 years ago)
- Location:
- mnumidesigner/trunk
- Files:
-
- 8 edited
-
admin/woocommerce/class-mnumidesigner-wc-product.php (modified) (2 diffs)
-
assets/js/frontend.js (modified) (1 diff)
-
includes/class-mnumidesigner-install.php (modified) (6 diffs)
-
includes/rest-api/endpoints/class-mnumidesigner-rest-calendars-controller.php (modified) (2 diffs)
-
includes/woocommerce/class-mnumidesigner-wc-cart.php (modified) (5 diffs)
-
languages/mnumidesigner.pot (modified) (4 diffs)
-
mnumidesigner.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mnumidesigner/trunk/admin/woocommerce/class-mnumidesigner-wc-product.php
r2411168 r2417553 435 435 $key = 'mnumidesigner_calendars'; 436 436 if ( ! empty( $_POST[ $key ] ) && is_array( $_POST[ $key ] ) ) { 437 $to Save = array();437 $to_save = array(); 438 438 foreach ( $_POST[ $key ] as $calendar ) { 439 439 if ( strlen( sanitize_text_field( wp_unslash( $calendar ) ) ) > 0 ) { 440 $to Save[] = sanitize_text_field( wp_unslash( $calendar ) );440 $to_save[] = sanitize_text_field( wp_unslash( $calendar ) ); 441 441 } 442 442 } 443 443 444 update_post_meta( $post_id, $key, $to Save );444 update_post_meta( $post_id, $key, $to_save ); 445 445 } else { 446 446 delete_post_meta( $post_id, $key ); … … 485 485 $key = 'mnumidesigner_calendars'; 486 486 if ( ! empty( $_POST[ $key ] ) && isset( $_POST[ $key ][ $i ] ) && is_array( $_POST[ $key ][ $i ] ) ) { 487 $to Save = array();487 $to_save = array(); 488 488 foreach ( $_POST[ $key ][ $i ] as $calendar ) { 489 489 if ( strlen( sanitize_text_field( wp_unslash( $calendar ) ) ) > 0 ) { 490 $to Save[] = sanitize_text_field( wp_unslash( $calendar ) );490 $to_save[] = sanitize_text_field( wp_unslash( $calendar ) ); 491 491 } 492 492 } 493 493 494 update_post_meta( $post_id, $key, $to Save );494 update_post_meta( $post_id, $key, $to_save ); 495 495 } else { 496 496 delete_post_meta( $post_id, $key ); -
mnumidesigner/trunk/assets/js/frontend.js
r2299029 r2417553 34 34 } 35 35 ); 36 $( document.body ).on( 37 'added_to_cart', 38 function( e, fragments, cart_hash, $button ) { 39 if (fragments && fragments.mnumidesigner) { 40 window.location.href = fragments.mnumidesigner; 41 } 42 } 43 ); 36 44 })( jQuery ); -
mnumidesigner/trunk/includes/class-mnumidesigner-install.php
r2411168 r2417553 18 18 class MnumiDesigner_Install { 19 19 /** 20 * Supported default roles 21 * 22 * @var array 23 */ 24 private static $roles = array( 25 'administrator', 26 'shop_manager', 27 ); 28 29 /** 20 30 * Install MnumiDesigner data 21 31 */ … … 25 35 } 26 36 27 self::create_ roles();37 self::create_caps(); 28 38 } 29 39 … … 31 41 * Create MnumiDesigner roles/capabilities. 32 42 */ 33 public static function create_roles() { 34 global $wp_roles; 35 36 if ( ! class_exists( 'WP_Roles' ) ) { 37 return; 38 } 39 40 if ( ! isset( $wp_roles ) ) { 41 $wp_roles = new WP_Roles(); 42 } 43 public static function create_caps() { 44 $wp_roles = wp_roles(); 43 45 44 46 $capabilities = self::get_capabilities(); … … 46 48 foreach ( $capabilities as $cap_group ) { 47 49 foreach ( $cap_group as $cap ) { 48 $wp_roles->add_cap( 'shop_manager', $cap ); 49 $wp_roles->add_cap( 'administrator', $cap ); 50 foreach ( self::$roles as $role_name ) { 51 $role = $wp_roles->get_role( $role_name ); 52 if ( ! $role ) { 53 continue; 54 } 55 56 $role->add_cap( $cap ); 57 } 50 58 } 51 59 } … … 84 92 * Remove MnumiDesigner roles/capabilities. 85 93 */ 86 public static function remove_roles() { 87 global $wp_roles; 88 89 if ( ! class_exists( 'WP_Roles' ) ) { 90 return; 91 } 92 93 if ( ! isset( $wp_roles ) ) { 94 $wp_roles = new WP_Roles(); 95 } 94 public static function remove_caps() { 95 $wp_roles = wp_roles(); 96 96 97 97 $capabilities = self::get_capabilities(); … … 99 99 foreach ( $capabilities as $cap_group ) { 100 100 foreach ( $cap_group as $cap ) { 101 $wp_roles->remove_cap( 'shop_manager', $cap ); 102 $wp_roles->remove_cap( 'administrator', $cap ); 101 foreach ( self::$roles as $role_name ) { 102 $role = $wp_roles->get_role( $role_name ); 103 if ( ! $role ) { 104 continue; 105 } 106 107 $role->remove_cap( $cap ); 108 } 103 109 } 104 110 } -
mnumidesigner/trunk/includes/rest-api/endpoints/class-mnumidesigner-rest-calendars-controller.php
r2415453 r2417553 330 330 $event_entry['date'] = substr( $event_entry['date'], 5 ); 331 331 } 332 if ( $event_entry['type'] === null) {332 if ( null === $event_entry['type'] ) { 333 333 $event_entry['type'] = ''; 334 334 } 335 if ( $meta['type'] === 'national-day') {335 if ( 'national-day' === $meta['type'] ) { 336 336 $data[ $event_entry['date'] ][] = array( 337 337 'name' => $event_entry['name'], … … 445 445 $cyclic = ! $has_year; 446 446 if ( $cyclic ) { 447 $date = date( 'Y' ) . '-' . $date;447 $date = gmdate( 'Y' ) . '-' . $date; 448 448 } 449 449 450 if ( $meta['type'] === 'national-day') {450 if ( 'national-day' === $meta['type'] ) { 451 451 $data['events'][] = array( 452 452 'date' => $date, -
mnumidesigner/trunk/includes/woocommerce/class-mnumidesigner-wc-cart.php
r2411168 r2417553 63 63 64 64 add_action( 'wp_enqueue_scripts', array( $this, 'variable_product_add_to_text_handling' ), 22 ); 65 66 add_filter( 'woocommerce_add_to_cart_fragments', array( $this, 'add_to_cart_fragments' ), 10, 1 ); 65 67 } 66 68 … … 89 91 90 92 if ( MnumiDesigner_WC_Product::is_mnumidesigner_product( $variation ) ) { 91 $mnumidesigner_variations[ $variation->get_id() ] = get_option( 'mnumidesigner_add_to_cart_label', 'Personaliz uj' );93 $mnumidesigner_variations[ $variation->get_id() ] = get_option( 'mnumidesigner_add_to_cart_label', 'Personalize' ); 92 94 } 93 95 } … … 350 352 } 351 353 354 private function get_latest_cart_item() { 355 $latest_cart_item = end( WC()->cart->cart_contents ); 356 357 // $items = WC()->cart->get_cart(); 358 // $latest_cart_item = end($items); 359 return $latest_cart_item; 360 } 361 352 362 /** 353 363 * Sets MnumiDesigner as redirect destination after adding to cart product … … 372 382 $product = wc_get_product( $product_id ); 373 383 374 $latest_cart_item = end( WC()->cart->cart_contents ); 375 376 $product_or_variation = $latest_cart_item['data']; 377 $product_or_variation_id = $product_or_variation->get_id(); 378 $product_id = $product_or_variation->get_id(); 379 $extra = ''; 380 if ( $product_or_variation instanceof WC_Product_Variation ) { 381 $product_id = $product_or_variation->get_parent_id(); 382 $extra .= sprintf( 'variation_id="%s"', $product_or_variation->get_id() ); 383 } 384 385 $trans = MnumiDesigner_WC_Product::get_translation( $product_or_variation ); 386 if ( $trans ) { 387 $extra .= sprintf( ' translation_id="%s"', $trans ); 388 } 389 390 $cals = MnumiDesigner_WC_Product::get_event_calendars( $product_or_variation ); 391 392 if ( count( $cals ) > 0 ) { 393 $extra .= sprintf( ' calendar_ids="%s"', implode( ',', $cals ) ); 394 } 395 396 if ( MnumiDesigner_WC_Product::is_mnumidesigner_product( $product_or_variation ) ) { 397 $url = do_shortcode( 398 sprintf( 399 '[%s product_id="%d" back_url="%s" %s]', 400 MnumiDesigner_WC_Shortcode_New_Project_Url::SHORTCODE, 401 $product_id, 402 MnumiDesigner_BackUrl_Handler::get_permalink( 403 array( 404 'mnumidesigner_uri_action' => 'attach', 405 'mnumidesigner_uri_cart_item_id' => $latest_cart_item['key'], 406 'mnumidesigner_uri_project_id' => '%s', 407 'mnumidesigner_uri_pages_count' => '%s', 408 ) 409 ), 410 $extra 411 ) 412 ); 413 } 414 384 $latest_cart_item = $this->get_latest_cart_item(); 385 $new_url = $this->get_attach_url_for_cart_item( $latest_cart_item ); 386 if ( $new_url ) { 387 return $new_url; 388 } 415 389 return $url; 416 390 } … … 498 472 } 499 473 } 474 475 /** 476 * 477 * @param array $fragments 478 */ 479 public function add_to_cart_fragments( $fragments ) { 480 if ( ! MnumiDesigner::is_configured() ) { 481 return $fragments; 482 } 483 484 $latest_cart_item = $this->get_latest_cart_item(); 485 $product_id = $latest_cart_item['data']->get_id(); 486 487 $product = wc_get_product( $product_id ); 488 if ( ! MnumiDesigner_WC_Product::is_mnumidesigner_product( $product ) ) { 489 return $fragments; 490 } 491 492 return array_merge( 493 $fragments, 494 array( 495 'mnumidesigner' => $this->get_attach_url_for_cart_item( $latest_cart_item ), 496 ) 497 ); 498 } 499 500 /** 501 * @param array $latest_cart_item 502 * @return string|false 503 */ 504 private function get_attach_url_for_cart_item( $latest_cart_item ) { 505 $product_or_variation = $latest_cart_item['data']; 506 $product_or_variation_id = $product_or_variation->get_id(); 507 $product_id = $product_or_variation->get_id(); 508 $extra = ''; 509 510 if ( $product_or_variation instanceof WC_Product_Variation ) { 511 $product_id = $product_or_variation->get_parent_id(); 512 $extra .= sprintf( 'variation_id="%s"', $product_or_variation->get_id() ); 513 } 514 515 $trans = MnumiDesigner_WC_Product::get_translation( $product_or_variation ); 516 if ( $trans ) { 517 $extra .= sprintf( ' translation_id="%s"', $trans ); 518 } 519 520 $cals = MnumiDesigner_WC_Product::get_event_calendars( $product_or_variation ); 521 522 if ( count( $cals ) > 0 ) { 523 $extra .= sprintf( ' calendar_ids="%s"', implode( ',', $cals ) ); 524 } 525 526 if ( ! MnumiDesigner_WC_Product::is_mnumidesigner_product( $product_or_variation ) ) { 527 return false; 528 } 529 530 return do_shortcode( 531 sprintf( 532 '[%s product_id="%d" back_url="%s" %s]', 533 MnumiDesigner_WC_Shortcode_New_Project_Url::SHORTCODE, 534 $product_id, 535 MnumiDesigner_BackUrl_Handler::get_permalink( 536 array( 537 'mnumidesigner_uri_action' => 'attach', 538 'mnumidesigner_uri_cart_item_id' => $latest_cart_item['key'], 539 'mnumidesigner_uri_project_id' => '%s', 540 'mnumidesigner_uri_pages_count' => '%s', 541 ) 542 ), 543 $extra 544 ) 545 ); 546 } 500 547 } 501 548 -
mnumidesigner/trunk/languages/mnumidesigner.pot
r2415453 r2417553 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: mnumidesigner 0.7. 1\n"5 "Project-Id-Version: mnumidesigner 0.7.2\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mnumidesigner\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2020-11- 09T23:37:15+01:00\n"12 "POT-Creation-Date: 2020-11-13T00:17:24+01:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.4.0\n" … … 237 237 238 238 #: admin/woocommerce/class-mnumidesigner-wc-order-data.php:97 239 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:22 4240 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:2 58239 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:226 240 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:260 241 241 msgid "Project" 242 242 msgstr "" … … 897 897 msgstr "" 898 898 899 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:1 08899 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:110 900 900 msgid "Add to cart" 901 901 msgstr "" 902 902 903 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:18 0903 #: includes/woocommerce/class-mnumidesigner-wc-cart.php:182 904 904 msgid "Invalid project ID" 905 905 msgstr "" -
mnumidesigner/trunk/mnumidesigner.php
r2415453 r2417553 5 5 * Description: MnumiDesigner is an online application for photo products. You can design photo calendars, photo albums or any other photo products sold in WooCommerce. 6 6 * Author: Mnumi 7 * Version: 0.7.1 7 * Version: 0.7.2 8 * WC requires at least: 3.0.0 8 9 * Text Domain: mnumidesigner 9 10 * -
mnumidesigner/trunk/readme.txt
r2415453 r2417553 2 2 Contributors: ppakier2017, mnumi 3 3 Tags: product customiser, product designer, custom product, print, photo book, photo album, photo calendar, photo-book, woocommerce, web2print 4 Stable tag: 0.7. 14 Stable tag: 0.7.2 5 5 Requires at least: 4.6 6 6 Tested up to: 5.4.4 … … 159 159 == Changelog == 160 160 161 = 0.7.2 - 2020-11-13 = 162 163 * Fix - Handle AJAX add to cart on archive view 164 161 165 = 0.7.1 - 2020-11-09 = 162 166
Note: See TracChangeset
for help on using the changeset viewer.