woocommerce-multilingual
/
addons
/
wpml-dependencies
/
vendor
/
wpml
/
wp
/
classes
Last commit date
Attachment.php
1 month ago
Cache.php
1 month ago
Gutenberg.php
1 month ago
Hooks.php
1 month ago
Http.php
1 month ago
Nonce.php
1 month ago
Option.php
1 month ago
Post.php
1 month ago
PostType.php
1 month ago
Resources.php
1 month ago
Roles.php
4 years ago
Transient.php
1 month ago
Url.php
1 month ago
User.php
1 month ago
WP.php
1 month ago
WPDB.php
1 month ago
Post.php
58 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPML\LIB\WP; |
| 4 | |
| 5 | use WPML\Collect\Support\Traits\Macroable; |
| 6 | use WPML\FP\Either; |
| 7 | use WPML\FP\Fns; |
| 8 | use WPML\FP\Logic; |
| 9 | use WPML\FP\Lst; |
| 10 | use function WPML\FP\curryN; |
| 11 | use function WPML\FP\gatherArgs; |
| 12 | use function WPML\FP\partialRight; |
| 13 | use function WPML\FP\pipe; |
| 14 | |
| 15 | class Post { |
| 16 | |
| 17 | use Macroable; |
| 18 | |
| 19 | public static function init() { |
| 20 | |
| 21 | self::macro( 'getTerms', curryN( 2, pipe( |
| 22 | 'get_the_terms', |
| 23 | Logic::ifElse( Logic::isArray(), [ Either::class, 'right' ], [ Either::class, 'left' ] ) |
| 24 | ) ) ); |
| 25 | |
| 26 | self::macro( 'getMetaSingle', curryN( 2, partialRight( 'get_post_meta', true ) ) ); |
| 27 | |
| 28 | self::macro( 'updateMeta', curryN( 3, 'update_post_meta' ) ); |
| 29 | |
| 30 | self::macro( 'deleteMeta', curryN( 2, 'delete_post_meta' ) ); |
| 31 | |
| 32 | self::macro( 'getType', curryN( 1, 'get_post_type' ) ); |
| 33 | |
| 34 | self::macro( 'get', curryN( 1, Fns::unary( 'get_post' ) ) ); |
| 35 | |
| 36 | self::macro( 'getStatus', curryN( 1, 'get_post_status' ) ); |
| 37 | |
| 38 | self::macro( 'update', curryN( 1, Fns::unary( 'wp_update_post' ) ) ); |
| 39 | |
| 40 | self::macro( 'insert', curryN( 1, Fns::unary( 'wp_insert_post' ) ) ); |
| 41 | |
| 42 | self::macro( 'setStatus', curryN(2, gatherArgs( pipe( Lst::zipObj( [ 'ID', 'post_status' ] ), self::update() ) ) ) ); |
| 43 | |
| 44 | self::macro( 'setStatusWithoutFilters', curryN( 2, function ( $id, $newStatus ) { |
| 45 | global $wpdb; |
| 46 | $result = $wpdb->update( $wpdb->posts, [ 'post_status' => $newStatus ], [ 'ID' => $id ] ) ? $id : 0; |
| 47 | if ( $result ) clean_post_cache( $id ); |
| 48 | return $result; |
| 49 | ; } ) ); |
| 50 | |
| 51 | self::macro( 'delete', curryN( 1, partialRight( 'wp_delete_post', true ) ) ); |
| 52 | |
| 53 | self::macro( 'trash', curryN( 1, partialRight( 'wp_delete_post', false ) ) ); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | Post::init(); |
| 58 |