| | |
| | | trait SyncToPost |
| | | { |
| | | use SyncTo, SyncHelpers, UserConnection; |
| | | |
| | | public function addSavePost():void |
| | | { |
| | | if (!has_action('save_post', [$this, 'handleSavePost'])) { |
| | |
| | | public function handleSavePost(int $postID, WP_Post $post, bool $update):void |
| | | { |
| | | if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; |
| | | if (wp_is_post_revision($postID)) return; |
| | | if (wp_is_post_revision($postID) || wp_is_post_autosave($postID)) return; |
| | | if (isset(self::$syncing['posts'][$postID])) return; |
| | | self::$syncing['posts'][$postID] = true; |
| | | |
| | | error_log('=== ['.$this->service_name.']::handleSavePost called'); |
| | | |
| | |
| | | $this->removeSavePost(); |
| | | $this->handleTheSavePost($postID, $post, $update, $settings); |
| | | $this->addSavePost(); |
| | | unset(self::$syncing['posts'][$postID]); |
| | | } |
| | | /** |
| | | * Handle post save for syncing |
| | |
| | | */ |
| | | protected function handleTheSavePost(int $postID, WP_Post $post, bool $update, array $settings):void |
| | | { |
| | | if (!$this->isSetUp()) { |
| | | return; |
| | | } |
| | | error_log('==== ['.$this->title.']::handleTheSavePost ===='); |
| | | $this->queueOperation(self::$syncTo, [ |
| | | 'posts' => [$postID], |
| | |
| | | } |
| | | public function handleDeletePost(int $postID):void |
| | | { |
| | | if (!$this->isSetUp()) { |
| | | return; |
| | | } |
| | | if (!$this->canSync['delete']) { |
| | | return; |
| | | } |